如题, 用下面的代码添加的效果, 是菜单前面显示 "(Icon)", 而不是图标..MenuItem item = new MenuItem();
item.Header = "新建项";
menu.Items.Insert(0, item);
item.Icon = System.Drawing.Icon.ExtractAssociatedIcon("...");
如果将 Icon 设置为磁盘上的某图标文件, 菜单前面显示的就是那文件的路径, 也不是图标.项目目标框架是 Framework 3.5
item.Header = "新建项";
menu.Items.Insert(0, item);
item.Icon = System.Drawing.Icon.ExtractAssociatedIcon("...");
如果将 Icon 设置为磁盘上的某图标文件, 菜单前面显示的就是那文件的路径, 也不是图标.项目目标框架是 Framework 3.5
请看代码下面的一行说明. 如果保存成图片再设置在图标, 就会显示 "X:\...\..ico" 了
vrhero
说的意思是用xaml来做这件事,UI在wpf中用xaml好
名称:Adobe Fireworks CS5, 类型:REG_SZ, 值:D:\Adobe\Adobe Fireworks CS5\Fireworks.exe
我要实现的功能就是, 取出每一条数据, 生成一个菜单项, 前面有对应程序的图标, 点击可以执行该程序
private void CreateMenu()
{
RegistryKey list = setting.OpenSubKey("ProgramList");
if (list == null) return; foreach (string prog in list.GetValueNames())
{
MenuItem item = new MenuItem {
Header = prog,
Tag = list.GetValue(prog),
Icon = Helper.GetExeIcon(list.GetValue(prog).ToString())
};
item.Click += new RoutedEventHandler(OpenWith);
menu.Items.Insert(0, item);
}
}
GetExeIcon如下:static public Image GetExeIcon(string exeName)
{
System.IO.MemoryStream men = new System.IO.MemoryStream();
System.Drawing.Icon.ExtractAssociatedIcon(exeName).Save(men);
return new Image { Source = new BitmapImage { StreamSource = men } };
}
不知以上代码有什么问题, 请大神赐教