我有一个WPF VB.NET应用程序,我想使用嵌入在应用程序资源中的图标作为菜单图标。到目前为止,我有这个代码(在窗口的初始化事件中):
MenuItem.Icon = New Image() With {.Source = New BitmapImage(New
Uri("Resources\Icon.ico", UriKind.Relative))}
图标仍未显示,有任何想法吗?
答案 0 :(得分:1)
问题是你的URI。如果在后面的代码中设置它,则必须编写完整的WPF Pack URI。您还必须设置Build Action
图标文件为Resource
(图标的默认值为None
)。
MenuItem.Icon = New Image() With
{
.Source = New BitmapImage(New Uri("pack://application:,,,/Resources/Icon.ico"))
}
在XAML中指定URI时,默认的ImageSource TypeConverter将添加pack://application:,,,
部分,您只需编写
<Image Source="/Resources/Icon.ico"/>
答案 1 :(得分:0)
更好的选择是在XAML中构建菜单:
Images
Resources
添加到Images
目录(在我的示例代码中:“Icon.ico”)...
<MenuItem Header="Item1">
<MenuItem.Icon>
<Image Source="/Images/Icon.ico" Width="20" Height="20" />
</MenuItem.Icon>
</MenuItem>
或者,如果您想在代码隐藏中执行此操作,则可以使用以下代码而不是步骤3:
MenuItem.Icon = New Image() With {.Source = New BitmapImage(New Uri("/Images/Icon.ico", UriKind.RelativeOrAbsolute))}