我正在使用C#和WPF在Visual Studio中开发一个项目。我有一个Datagrid,我想以编程方式创建/自定义其上下文菜单项。
以下是我目前正在创建菜单项的方式:
MenuItem Enable;
Enable = new MenuItem();
dgdProcessList.ContextMenu.Items.Add(Enable);
Enable.Header = "Enable";
现在我想为该菜单项放置一个图标,但是我无法弄清楚如何将图标指向项目中的现有文件。它目前位于我项目的Resources \ Icons \ SampleIcon.ico中。我如何在此处正确引用它:
Enable.Icon = ???;
另外,我希望此菜单项在单击时触发功能。如何使用以下代码执行此操作:
Enable.Click = ???;
如果这很简单,请道歉。我查看了与此问题相关的各种主题,但未能弄明白。
答案 0 :(得分:0)
你需要的是:
<Target Name="AddNetStdMinDefine"
BeforeTargets="CoreCompile"
Condition="('$(TargetFrameworkIdentifier)' == '.NETStandard' and '$(TargetFrameworkVersion.Substring(1))' >= '1.4')">
<PropertyGroup>
<DefineConstants>$(DefineConstants);IS_MIN_NETSTANDARD1_4</DefineConstants>
</PropertyGroup>
</Target>
只要您的图标位于App.xaml中引用的ResourceDictionary中,您应该很好,即:
将它放在您的ResourceDictionary中:
var imgEdit = (BitmapImage) Application.Current.FindResource("Edit");
var mnu = new MenuItem {Header = title};
if (imgEdit != null) mnu.Icon = new Image {Height = 16, Width = 16, Source = imgEdit};
在你的App.xaml中有这个:
<BitmapImage UriSource="/MyApp;component/Images/Light/edit.png" x:Key="Edit" PresentationOptions:Freeze="True" />
要启用Click,请执行以下操作:
<ResourceDictionary Source="Resources/ImageStyles.xaml" />