C# WPF上下文菜单在单击时消失
我有一个WPF应用程序,并为网格添加了一个ContextMenu。用户在网格上进行选择,然后进行选择;此时会出现一个上下文菜单。我在ContextMenu上有一些文本框,用户可以在其中输入一些值,但是如果用户单击ContextMenu本身(而不是文本框内部),对话框就会消失。我想防止这种情况发生,并尝试获取一些事件,指示何时单击ContextMenuC# WPF上下文菜单在单击时消失,c#,wpf,contextmenu,C#,Wpf,Contextmenu,我有一个WPF应用程序,并为网格添加了一个ContextMenu。用户在网格上进行选择,然后进行选择;此时会出现一个上下文菜单。我在ContextMenu上有一些文本框,用户可以在其中输入一些值,但是如果用户单击ContextMenu本身(而不是文本框内部),对话框就会消失。我想防止这种情况发生,并尝试获取一些事件,指示何时单击ContextMenu private void CreateContextMenu() { detectionInfoContextMenu = new Conte
private void CreateContextMenu()
{
detectionInfoContextMenu = new ContextMenu(); //create an instance of the class
//selectionBoxCanvas.ContextMenu = detectionInfoContextMenu;
playVideoGrid.ContextMenu = detectionInfoContextMenu;
detectionInfoContextMenu.MouseDown += detectionInfoContextMenu_MouseDown;
}
void detectionInfoContextMenu_MouseDown(object sender, MouseButtonEventArgs e)
{
if(e.LeftButton == MouseButtonState.Pressed)
MessageBox.Show("You clicked me!");
}
我正在尝试获取鼠标按钮事件,以确定是否单击了鼠标左键。这似乎在其他控件(如画布等)上运行良好,但在上下文菜单上似乎不起作用。我使用了错误的事件吗 您可以使用
StaysOpenOnClick
阻止关闭菜单:
<MenuItem StaysOpenOnClick="True">Test</MenuItem>
<ContextMenu>
<MenuItem StaysOpenOnClick="True">
<MenuItem.Header>
<TextBox Width="100" />
</MenuItem.Header>
</MenuItem>
</ContextMenu>
我认为在这种情况下不应该使用上下文菜单。改为使用。什么时候使用哪个合适?在我看来,当它实际上是一个菜单时,你应该使用ContextMenu——一个操作列表(如打开、关闭、撤消等)。而弹出窗口是为其他一切-输入,选择,一些自定义用户界面;我在C#中动态创建了ContextMenu,但感谢XAML代码