嗨,我想通过样式设置器设置MenuItem.Icon:
<Style x:Key="MenuItem_Delete" TargetType="MenuItem"
BasedOn="{StaticResource {x:Type MenuItem}}">
<Setter Property="Header" Value="_Delete"/>
<Setter Property="MenuItem.Icon">
<Setter.Value>
<Image Source="Resources/Delete.png"/>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
我在运行时遇到以下异常:无法将类型为"System.Windows.Controls.Image"的内容添加到"System.Object"类型的对象中.标记文件'WpfApplication1; component/application.xaml'中对象'System.Windows.Controls.Image'出错.第164行位置26.
另一方面,这是上面链接中的示例:
<MenuItem Header="New">
<MenuItem.Icon>
<Image Source="data/cat.png"/>
</MenuItem.Icon>
</MenuItem>
Run Code Online (Sandbox Code Playgroud)
谢谢.
我有一个ViewModel树显示为TreeView(使用HierarchicalDataTemplate).每个ViewModel实例都有不同的命令可以在其上执行,它们再次作为每个项目ViewModel的命令ViewModel列表公开.如何创建单个 ContextMenu,该TreeMenu在右键单击的TreeViewItem处打开,并从基础项ViewModel的命令ViewModels列表中填充其命令?一切都在体面的MVVM时尚......
嘿伙计们,我需要在C#中为Visual Studio 2010加载项创建一个自定义菜单项,但我没有找到满足我需求的解决方案.
我知道有一个类似的帖子(Visual Studio加载项 - 向解决方案资源管理器添加上下文菜单项),但它没有帮助,因为博客通过集成包跟踪过程,视频通过VB.我曾尝试将VB语法转换为C#语法,但在视频的大约一半时间,加载方法从2005年到2010年发生了重大变化,因为某些方法已被删除或更改.
是否有关于在C#中最新的Visual Studio中的解决方案资源管理器上制作自定义菜单项的任何好的教程,是否有一个很好的网站可以作为查看VS加载项API的参考?我使用过微软的主要网站,但它很混乱,很难理解,很难理解并找到我正在寻找的方法,属性或命令.
任何帮助都会有所帮助,在此先感谢.
我不能让这个工作,所以我认为在这里张贴可能是一个明智的想法...
我在SWT中有一个上下文菜单(实际上它是一个Eclipse插件).这是一个级联菜单,所以当你将鼠标悬停在某个条目上时它会立即扩展...
我的问题是,我想在菜单上附上一个小图标,但我很挣扎!
代码:....
manager.add(new Separator());
// icon for the "change color" menu
ImageDescriptor icon = ImageDescriptor.createFromFile(null,
"icons/palette_brush.png");
// submenu
MenuManager colorMenu = new MenuManager("Menu", icon, null);
// Actions
colorMenu.add(someAction);
// add the action to the submenu
manager.add(colorMenu);
....
Run Code Online (Sandbox Code Playgroud)
我的问题是,可以使用2个参数(无附加图像)或3(带附加图像)调用新的MenuManager.图像应作为ImageDescriptor传递.
问题基本上是:
"如何从图像中获取Imagedescriptor?"
也许这是一个愚蠢的错误 - 但我无法从图像文件中获取ImageDescriptor.我有一个*.png图标可供使用,但我很难将其合并.
如果有人可以帮助解决一个片段,那么从图像文件中获取一个ImageDescriptor,这将是太棒了!
最好的祝福!
MenuManager文档:
MenuManager Docu
我想在WPF中为我的Listbox提供一个上下文菜单.我使用整个列表框的上下文菜单来完成它,但即使您没有单击某个项目,也可以通过richt-click来获取上下文菜单.
我在谷歌找到了一些东西,但这没有用.
我试过这样的事情:
<ListBox Margin="5" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}">
<TextBlock.ContextMenu>
<ContextMenu>
<MenuItem Header="{Binding Name}" Click="MenuItemName_Click"/>
<MenuItem Header="{Binding Capital}" Click="MenuItemCapital_Click"/>
<MenuItem Header="{Binding Population}" Click="MenuItemPopulation_Click"/>
</ContextMenu>
</TextBlock.ContextMenu>
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
我尝试使用像示例中的文本块,与其他教程中的其他元素一样,我厌倦了没有和许多其他东西 - 但没有任何效果.我的列表框项目没有上下文菜单:(
后来我尝试过这样的事:
<ListBox.ItemTemplate>
<DataTemplate>
<ListBoxItem>
<ListBoxItem.ContextMenu>
<ContextMenu>
<MenuItem/>
</ContextMenu>
</ListBoxItem.ContextMenu>
</ListBoxItem>
</DataTemplate>
</ListBox.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)
但它也没有用.
有人可以给我一个提示/工作示例:)?
谢谢
当用户长按任何编辑文本时,是否可以在项目列表中添加内容?(剪切,复制粘贴,选择文本,全选,输入法)我想在此菜单中添加另一个选项,但无法弄明白.
有这个问题的复制在这里,和第一个答案的最后评论说,这是"可能,但不漂亮".然后线程死了.
我真的很想看到任何有用的例子,脏或不:)
我知道之前已经问过这个问题,答复是覆盖onPrepareContextMenu()/ onCreateContextMenu().但我不明白,也没有得到任何解决方案.请帮我如何禁用特定ListView项目的上下文菜单.
我尝试了3种不同的代码示例,但都失败了.
这是来自MSFT员工的代码(如何在范围上显示上下文菜单),其他两个样本具有完全相同的代码:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
CommandBar cellbar = this.Application.CommandBars["Cell"];
CommandBarButton button = (CommandBarButton) cellbar.FindControl(MsoControlType.msoControlButton, 0, "MYRIGHTCLICKMENU", Missing.Value, Missing.Value);
if (button == null)
{
// add the button
button = (CommandBarButton) cellbar.Controls.Add(MsoControlType.msoControlButton, Missing.Value, Missing.Value, cellbar.Controls.Count, true);
button.Caption = "Refresh";
button.BeginGroup = true;
button.Tag = "MYRIGHTCLICKMENU";
button.Click += new _CommandBarButtonEvents_ClickEventHandler(MyButton_Click);
}
}
private void MyButton_Click(CommandBarButton cmdBarbutton, ref bool cancel)
{
System.Windows.Forms.MessageBox.Show("MyButton was Clicked", "MyCOMAddin");
}
Run Code Online (Sandbox Code Playgroud)
当我右键单击一个单元格时,我希望看到一个名为Refresh的菜单项.然而,运行上面的代码(在Excel 2010中)没有"刷新"菜单项.
非常感谢我可能缺少的任何提示,或者这个功能是否从2007年改为2010年?
我在Qt中创建了一个上下文菜单,我需要菜单中的项目以选中/未选中的方式工作,以便在每个单击相应项目时切换.如何将此功能添加到QAction,如下所示?
默认情况下,JavaFX TextField内置ContextMenu了"撤消","复制","剪切"等选项.该ComboBox也具有同样的ContextMenu,当它被设置为可编辑(的ComboBox其实是这是一个编辑器的一部分TextField).
我想ContextMenu用自定义替换它,但我遇到了禁用默认问题的问题.
我试图消耗ContextMenu和鼠标点击事件,但ComboBox并ComboBox.getEditor()都有空ContextMenu.
我错过了什么吗?