Tag: contextmenu

即使设置了CommandParameter,ICommand.CanExecute也会传递null

我有一个棘手的问题,我将ContextMenu绑定到一组ICommand派生的对象,并通过样式在每个MenuItem上设置Command和CommandParameter属性: … 但是,当ICommand.Execute( object )按原样传递选定的注释集时, ICommand.CanExecute( object ) (在创建菜单时调用)将被传递为null。 我已经检查过并且在调用之前正确地实例化了所选的注释集合(实际上它在其声明中被赋值,因此它永远不会为null )。 我无法弄清楚CanEvaluate为何被传递为null 。

C# – DatagridView和ContextMenu

我有一个datagridview,我在其中显示有关产品的信息。 我想在用户选择一个单元格然后右键单击该单元格时绑定一个上下文菜单。 我有另一个contextmenu,并且一个绑定到datagridview的列。 如果用户右键单击上下文菜单显示的列。 我试过这样但是它不起作用。 上下文菜单显示用户右键单击单元格的时间,但绑定到列标题的上下文菜单不起作用。 private void GridView1_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) { if (e.Button == MouseButtons.Right) { productContextMenu.Show(GridView1, e.Location); } } 如何使用当用户右键单击datagridview时显示? 很多人提前。 编辑 Thnx的答案。 我解决了这个问题: private void GridView1_MouseUp(object sender, MouseEventArgs e) { DataGridView.HitTestInfo hitTestInfo; if (e.Button == MouseButtons.Right) { hitTestInfo = GridView1.HitTest(eX, eY); if (hitTestInfo.Type == DataGridViewHitTestType.Cell) { productContextMenu.Show(GridView1, e.Location); } } } […]

确定在执行ContextMenu MenuItem时在ListView中单击了哪个ListViewItem

我正在尝试使用列表视图中的上下文菜单来运行一些代码,这些代码需要来自哪个项目的数据。 我最初只是这样做: XAML: … C#: private void cmMetadata_Click(object sender, RoutedEventArgs e) { // code that needs item data here } 但我发现原始listview项目无法通过这种方式访问​​。 我已经阅读了一些关于如何解决这个问题的策略,比如拦截MouseDown事件并将一个私有字段设置为被点击的listviewitem,但这并不适合我,因为它似乎有点hacky传递数据办法。 WPF应该很容易,对吧? :)我已经阅读了这个问题和这个MSDN论坛问题 ,但我仍然不确定如何真正做到这一点,因为这些文章似乎都不适合我的情况。 有没有更好的方法将点击的项目传递到上下文菜单? 谢谢!

有没有办法使用Wpf(C#)更改Web浏览器的上下文菜单

我想在Web浏览器控件中提供的默认上下文菜单中更改菜单项。 我已经尝试过:webbrowser.contextmenu = mycontextmenu。 没有改变。 有没有办法做到这一点?

上下文菜单的WPF子菜单

如果上下文菜单在xaml中是“硬编码”的,则很容易添加子菜单。 例如: 这意味着,ContextMenu有三个元素(Comm1,Comm2和Comm3),Comm1有子菜单SubComm1。 我使ContextMenu更加灵活: 基本上我在ContextMenu中可以有任意数量的元素,任何元素都可以有任何Command。 如何将子菜单添加到ContextMenu元素?

在上下文菜单中不调用DelegateCommand

我似乎无法让这个右键单击弹出菜单工作。 //Delegated command public DelegateCommand CommandPopupClick { get; set; } //Assigning the delegate command. CommandPopupClick = new DelegateCommand(PopupClick, CanMyCommand); //Event for rightclick option clicked public void PopupClick(Object Parameters) { var something = Parameters; //Break is here to see if the event fires } 我可以看到弹出菜单中包含“删除”和“属性”项。 但是,当我单击其中任何一个时,它不会触发事件。 注意:委托命令系统适用于其他所有事情,我不认为这是问题所在。 如果我能帮忙的话,我真的不想使用Name.Click += new RoutedEvent() 。 谢谢。 调试中的错误按请求 A first […]

如何在C#中创建上下文菜单

我想使用C#创建一个上下文菜单,它将显示在节点旁边,类似于Visual Studio中的内容: 我现在的代码导致主窗体闪烁。 private void treeView1_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { var myForm = new Form {Text = “My Form”}; myForm.SetBounds(10, 10, 200, 200); myForm.Show(); // Determine if the form is modal. if (myForm.Modal == false) { // Change borderstyle and make it not a top level window. myForm.FormBorderStyle = FormBorderStyle.FixedToolWindow; […]

在自定义窗口上启动窗口的系统菜单

当您单击应用程序的图标或在应用程序的标题栏上单击鼠标右键时,我想调用ContextMenu 。 这是ContextMenu我的意思是: 我需要它,因为我做了像窗口一样的自定义控件。 我需要这种行为来完成我的控制。 编辑: Leo Lorenzo Luis问我代码: https://skydrive.live.com/?cid=c3392940f5cf5f74&id=C3392940F5CF5F74%21107&authkey=!APd2X3tDxWRfpL4 要么: 我的MainWindow.xaml: <!– –> 我的MainWindow.cs(代码隐藏): using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Windows.Interop; using System.Windows.Forms; namespace WpfApplication16 { /// /// Interaction logic for […]

在ItemsControl中绑定上下文菜单?

如何将ContextMenu添加到ItemsControl,其中: ItemsControl的ItemsSource位于包含ItemsControl的UserControl的ViewModel中 Context Menu的CommandParameter是绑定到ItemsControl中Item的ViewModel。 我遵循这种方法 。 但是,我有一个Command,它从绑定到ItemsControl的ObservableCollection中删除项目。 发生这种情况时,会在RelayCommand中抛出exception。 在我看来,ContextMenu不是“隐藏”,所以它试图为其命令评估“CanExecute”,但是当项目被删除时,它不能在RelayCommand的CanExecute方法中将参数转换为“T”类。 我想知道如何完成我需要的正确方法。 到目前为止我的实施: MainViewModel public class MainViewModel { public ObservableCollection ContextMenuItems{ get;set; } public ObservableCollection MyItems{ get;set; } public void AddItem(MyItemClass item) { MyItems.Add(item); } public void AddContextMenuItem(MyContextMenuClass item) { ContextMenuItems.Add(item); } public MainViewModel(IList myItems, IList myContextualMenuItems) { MyItems.AddRange(myItems); ContextMenuItems.AddRange(myContextualMenuItems); } public MainViewModel() {} } MyItemClass public […]

检查在上下文菜单条中单击了哪个子菜单项

网格控件中有ContextMenuStrip。 我把它命名为GridContextMenu。 GridContextMenu使用以下代码填充4-5个项目: gridcontextMenu.Items.Add(new ToolStripMenuItem { Name = Plants, Text = Plants, Tag = Plants, Width = 100, Image = }); gridcontextMenu.Items.Add(new ToolStripMenuItem { Name = Animals, Text = Animals, Tag = Animals, Width = 100, Image = }); 对于工具条中的动物菜单,我按以下方式添加子菜单 (gridcontextMenu.Items[1] as ToolStripMenuItem).DropDownItems.Add(“Tiger”, image_source, new EventHandler(SubmenuItem_Click)); (gridcontextMenu.Items[1] as ToolStripMenuItem).DropDownItems.Add(“Lion”, image_source, new EventHandler(SubmenuItem_Click)); (gridcontextMenu.Items[1] as ToolStripMenuItem).DropDownItems.Add(“Elephant”, […]