【发布时间】:2010-09-07 00:17:07
【问题描述】:
我有一个带有 png 的图像文件夹。我想将 MenuItem 的图标设置为该 png。我如何在程序代码中编写这个?
【问题讨论】:
我有一个带有 png 的图像文件夹。我想将 MenuItem 的图标设置为该 png。我如何在程序代码中编写这个?
【问题讨论】:
menutItem.Icon = new System.Windows.Controls.Image
{
Source = new BitmapImage(new Uri("images/sample.png", UriKind.Relative))
};
【讨论】:
<MenuItem>
<MenuItem.Icon>
<Image>
<Image.Source>
<BitmapImage UriSource="/your_assembly;component/your_path_here/Image.png" />
</Image.Source>
</Image>
</MenuItem.Icon>
</MenuItem>
只要确保你的图片也包含在项目文件中并标记为资源,你就可以开始了:)
【讨论】:
<MenuItem.Icon> 中写入 <Image Source="/CreditAlpha;component/Images/ColorWheel.png" />
Arcturus 的回答很好,因为这意味着您的项目中有图像文件,而不是一个独立的文件夹。
所以,在代码中变成...
menutItem.Icon = new Image
{
Source = new BitmapImage(new Uri("pack://application:,,,/your_assembly;component/yourpath/Image.png"))
}
【讨论】:
这有点短:D
<MenuItem Header="Example">
<MenuItem.Icon>
<Image Source="pack://siteoforigin:,,,/Resources/Example.png"/>
</MenuItem.Icon>
</MenuItem>
【讨论】:
这就是我使用它的方式(这样它就不需要内置到程序集中):
MenuItem item = new MenuItem();
string imagePath = "D:\\Images\\Icon.png");
Image icon = new Image();
icon.Source= new BitmapImage(new Uri(imagePath, UriKind.Absolute));
item.Icon = icon;
【讨论】:
这对我有用
<MenuItem Header="delete ctrl-d" Click="cmiDelete_Click">
<MenuItem.Icon>
<Image>
<Image.Source>
<ImageSource>Resources/Images/delete.png</ImageSource>
</Image.Source>
</Image>
</MenuItem.Icon>
</MenuItem>
【讨论】:
对于那些使用 vb.net 的人,要做到这一点,你需要使用这个:
menuItem.Icon = New Image() With {.Source = New BitmapImage(New Uri("pack://application:,,,/your_assembly;component/yourpath/Image.png"))}
【讨论】:
您还可以使用 Visual Studio 插入图标。这是最简单的方法
问题解决了。
【讨论】: