WPF устанавливает MenuItem.Icon в коде
Вопрос
У меня есть папка изображений с 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>
Просто убедитесь, что ваше изображение также включено в файл проекта и помечено как ресурс, и все готово :)
Ответ Арктуруса хорош, потому что это означает, что в вашем проекте есть файл изображения, а не отдельная папка.
Итак, в коде это становится...
menutItem.Icon = new Image
{
Source = new BitmapImage(new Uri("pack://application:,,,/your_assembly;component/yourpath/Image.png"))
}
Вот как я его использовал (так его не нужно встраивать в сборку):
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;
Это немного короче :D
<MenuItem Header="Example">
<MenuItem.Icon>
<Image Source="pack://siteoforigin:,,,/Resources/Example.png"/>
</MenuItem.Icon>
</MenuItem>
Тем из вас, кто использует vb.net, для этого нужно использовать следующее:menuItem.Icon = New Image() With {.Source = New BitmapImage(New Uri("pack://application:,,,/your_assembly;component/yourpath/Image.png"))}
Это то, что сработало для меня
<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>
Вы также можете использовать Visual Studio для вставки значка.Это самый простой способ
- Щелкните правой кнопкой мыши проект в обозревателе решений.
- выбрал Свойства
- Убедитесь, что вы находитесь на странице приложения.
- @ ресурсы, которые вы видите:Значок и манифест
- @ Икона:Нажмите «Обзор» и выберите свой значок.
Задача решена.