我想将菜单项添加到默认值ContextMenua RichTextBox.
我可以创建一个新的上下文菜单但是我丢失了默认菜单中显示的拼写检查建议.
有没有办法在不重新实现所有内容的情况下添加项目?
所以我已经将一个上下文菜单(右键菜单)附加到wpf listview.
不幸的是,当你右键单击它时会显示菜单并选择你结束的任何项目.有没有办法在仍允许上下文菜单的同时关闭此右键单击选择行为?
一,标准信息:
VS2010 Ultimate
Win7 Ultimate x64
WPF应用程序
WPF上下文菜单:
<ContextMenu x:Key="RightClickSystemTray" Placement="MousePoint">
<MenuItem Header="Exit" Click="Menu_Exit"></MenuItem>
</ContextMenu>
Run Code Online (Sandbox Code Playgroud)
显示它的代码:
void _notifyIcon_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Right)
{
ContextMenu menu = (ContextMenu)this.FindResource("RightClickSystemTray");
menu.IsOpen = true;
}
}
Run Code Online (Sandbox Code Playgroud)
上下文菜单是在XAML中构建的WPF ContextMenu.系统托盘中的通知图标是表单通知图标(我不知道本机WPF通知图标).因此,不使用notifyicon.ContextMenu属性.上面的代码工作正常.当用户右键单击通知图标时,上下文菜单会显示它应该显示的内容.
我遇到的问题是让ContextMenu在我想要的时候消失.只要你点击WPF应用程序中的某个地方,它就会消失.此行为是自动的.但是,如果用户点击其他地方,例如任务栏,则菜单不会消失."LostFocus"事件不会触发,因为这些类型的事件仅在元素失去焦点到同一应用程序中的另一个元素时触发.就应用而言,ContextMenu永远不会失去焦点."Deactivated"是我试图使用的另一个事件.此时我应该澄清应用程序有一个"接近托盘"选项,因此应用程序可以在用户有机会右键单击并显示菜单之前关闭并触发已停用的事件.当菜单出现时,应用程序不会重新激活,因此当我单击任务栏时,甚至不会激活停用的应用程序.
最后,问题.当用户点击它时,如何让我的上下文菜单消失,即使用户点击的位置不在创建上下文菜单的应用程序中?
我想把一个上下文菜单放到一个NSTableView.这部分完成了.我要做的就是根据右键单元格的内容显示不同的菜单条目,而不显示特定列的上下文菜单.
这是:
第0列,第1列没有上下文菜单
所有其他单元格应该具有如下的上下文菜单:
第一个条目:"删除"samerow.column1.value
第二个条目:"save"samecolumn.headertext
希望问题很清楚..
谢谢
-编辑-
右边的那个是上下文菜单对于任何给定单元格应该是什么样子.

我正在使用MVVM将视图绑定到树中的对象.我有一个基类来实现我的树中的项目,并且该基类具有ContextMenu属性:
public IEnumerable<IMenuItem> ContextMenu
{
get
{
return m_ContextMenu;
}
protected set
{
if (m_ContextMenu != value)
{
m_ContextMenu = value;
NotifyPropertyChanged(m_ContextMenuArgs);
}
}
}
private IEnumerable<IMenuItem> m_ContextMenu = null;
static readonly PropertyChangedEventArgs m_ContextMenuArgs =
NotifyPropertyChangedHelper.CreateArgs<AbstractSolutionItem>(o => o.ContextMenu);
Run Code Online (Sandbox Code Playgroud)
绑定到基类(以及所有派生类)的View实现了绑定到该属性的ContextMenu:
<ContextMenu x:Name="contextMenu" ItemsSource="{Binding Path=(local:AbstractSolutionItem.ContextMenu)}"
IsEnabled="{Binding Path=(local:AbstractSolutionItem.ContextMenuEnabled)}"
ItemContainerStyle="{StaticResource contextMenuStyle}"/>
Run Code Online (Sandbox Code Playgroud)
菜单中的每个项目都绑定到IMenuItem对象(菜单项的ViewModel).单击菜单项时,它使用命令在基础对象上执行命令.一切都很好.
但是,一旦命令在IMenuItem类上执行,它有时需要获取用户右键单击的对象的引用以显示上下文菜单(或至少该对象的ViewModel).这是上下文菜单的重点.我应该如何将树项ViewModel的引用传递给MenuItem ViewModel?请注意,某些上下文菜单由树中的许多对象共享.
我知道可以扩展标准文件的上下文菜单,但有没有办法将项目添加到系统范围的文本框上下文菜单?
这样,新项目会显示在用户可以在Windows中的任何位置输入的每个文本框中吗?
例如,允许添加此类功能,以便根据拼写检查器查找所选文本.
我正在寻找一个好的插件,直接从Eclipse的编辑器窗口显示Windows资源管理器上下文菜单.有人知道这样的插件吗?
当用户右键单击场景的空白部分时,有没有办法显示弹出窗口?
我是Qt的新手,我尝试过插槽和子类,但无济于事.
没有这样的插槽,分别是:
"错误:'QMouseEvent'尚未宣布"
在尝试实施该onMouseRelease事件时.
我正在使用VS 2008,我想ContextMenuStrip在我的应用程序中添加一个contextMenu(绝对不是!!).工具箱中没有contextMenu(!!).那么如何以编程方式将其添加到我的代码中?
提前致谢,
contextmenu ×10
c# ×4
wpf ×4
windows ×2
.net ×1
cocoa ×1
eclipse ×1
explorer ×1
forms ×1
javascript ×1
listview ×1
lostfocus ×1
menuitem ×1
mvvm ×1
notifyicon ×1
nstableview ×1
objective-c ×1
qmouseevent ×1
qt ×1
right-click ×1