标签: contextmenu

动态添加项目到上下文菜单并设置单击操作

我有一个每5秒重新生成一次的字符串列表.我想创建一个上下文菜单,并使用此列表动态设置其项目.问题是我甚至不知道如何做到这一点并管理生成的每个项目的Click操作(应该使用与不同参数DoSomething("item_name")相同的方法).

我该怎么做?

谢谢你的时间.最好的祝福.

.net c# contextmenu

11
推荐指数
1
解决办法
2万
查看次数

默认ContextMenu样式 - WPF

我试图修改WPF中ContextMenu的默认样式.

通常,您可以使用"编辑控件"(模板)>"编辑复制"菜单选项在Expression Blend中创建默认值的副本.但是我无法解决如何使用ContextMenu执行此操作.知道我怎么能修改默认样式?

我试图禁用上下文菜单的左侧,通常显示图标.

谢谢!

更新: 也许我不清楚删除图标.例如,如果您有一个没有图标的上下文菜单,那么菜单的整个左侧就是浪费的空间.我想修改上下文菜单背景的默认样式以删除它.我只是不知道如何访问此默认样式.

.net wpf contextmenu

11
推荐指数
2
解决办法
2万
查看次数

WPF:空时隐藏ContextMenu

我有一个上下文菜单,通过数据绑定获取菜单项(我使用的是MVVM模式):

<ContextMenu ItemsSource="{Binding Path=ContextMenuItems}" />
Run Code Online (Sandbox Code Playgroud)

这很好用.但是,在没有要显示的菜单项的情况下,我不希望上下文菜单显示.有没有办法实现这个目标?某种XAML触发可能吗?

当没有孩子时,我已经尝试捕获Opened事件,关闭上下文菜单.这工作但上下文菜单仍然闪烁...

wpf contextmenu mvvm

11
推荐指数
2
解决办法
1万
查看次数

c#WinForms - 单击某些项目后,使ContextMenu不会关闭

我正在使用System.Windows.Forms.ContextMenu.我想这样做,当你点击一些按钮时,它不会关闭菜单.现在我让它工作的地方,无论何时你点击一个,它将在相同的位置重新打开菜单.唯一的问题是它看起来很糟糕,因为你可以看到菜单闪烁.有没有更好的方法来做到这一点?

WPF的ContextMenu具有StaysOpen属性,但Win Forms没有.(有什么方法可以使用WPF的ContextMenu吗?)我不想使用ContextMenuStrip,它可以做到这一点,因为ContextMenu看起来好多了.

编辑:

我不打算将此标记为解决方案,因为这样做并不好.如果你需要做我的问题请求,一种方法是从WPF创建UserControl,然后将对象与上下文菜单放在其中,然后添加上下文菜单.现在因为它在WPF中,在按钮上你不想在点击时关闭菜单,在MenuItem上将属性StaysOpenOnClick设置为true.然后将这个UserControl放入你的WinForms应用程序.

c# contextmenu

11
推荐指数
2
解决办法
9737
查看次数

右键单击菜单项时如何显示上下文菜单

我正在将一个MFC应用程序移植到.NET WinForms.在MFC应用程序中,您可以右键单击菜单或上下文菜单项,然后显示另一个包含诊断和配置项的上下文菜单.我试图将此功能移植到.NET,但我遇到了麻烦.

我已经能够捕获右键单击,禁用单击底层菜单并在正确的位置弹出上下文菜单,但原始菜单一丢失焦点就会消失.

在MFC中,我们通过使用TPM_RECURSE标志调用TrackPopupMenuEx来显示新的上下文菜单.

ContextMenu和.NET中较新的ContextMenuStrip类只有一个Show方法.有谁知道如何在.NET中这样做?

编辑

我已尝试通过ap/invoke 使用TrackPopupMenuEx,但这限制了您使用ContextMenu而不是在我们的应用程序中看起来不合适的ContextMenuStrip.它仍然无法正常工作.它不适用于新的MenuStripContextMenuStrip.

我还尝试了子类化ToolStripMenuItem以查看是否可以向其添加上下文菜单.这适用于MenuStrip,但ContextMenuStrip仍允许右键单击事件作为点击进行传递.

.net c# contextmenu winforms

10
推荐指数
1
解决办法
1万
查看次数

如何在WPF上下文菜单项单击事件处理程序中引用右键单击的对象?

在WPF应用程序中,有一个Grid包含许多对象(它们来自自定义控件).我想使用上下文菜单对每个操作执行一些操作:

   <Grid.ContextMenu>
     <ContextMenu>
       <MenuItem  Name="EditStatusCm" Header="Change status" Click="EditStatusCm_Click"/>
     </ContextMenu>                   
   </Grid.ContextMenu> 
Run Code Online (Sandbox Code Playgroud)

但是在事件处理程序中,我无法知道哪些对象被右键单击:

    private void EditStatusCm_Click(object sender, RoutedEventArgs e)
    {
        MyCustControl SCurrent = new MyCustControl();
        MenuItem menu = sender as MenuItem;
        SCurrent = menu.DataContext as MyCustControl; // here I get a run-time error
        SCurrent.Status = MyCustControl.Status.Sixth;
    }
Run Code Online (Sandbox Code Playgroud)

在该注释行上调试器说:对象引用未设置为对象的实例.

请帮忙,我的代码有什么问题?

编辑(补充):

我尝试使用Command方法做同样的事情:

我宣布了一个DataCommands类,RoutedUICommand Requery然后使用Window.CommandBindings

<Window.CommandBindings>
  <CommandBinding Command="MyNamespace:DataCommands.Requery" Executed="RequeryCommand_Executed"></CommandBinding>
</Window.CommandBindings>
Run Code Online (Sandbox Code Playgroud)

MenuItem的XAML现在看起来像:

<Grid.ContextMenu>
 <ContextMenu>
  <MenuItem  Name="EditStatusCm" Header="Change status"  Command="MyNamespace:DataCommands.Requery"/>
 </ContextMenu>                   
</Grid.ContextMenu>
Run Code Online (Sandbox Code Playgroud)

事件处理程序如下所示:

    private void RequeryCommand_Executed(object …
Run Code Online (Sandbox Code Playgroud)

c# wpf contextmenu event-handling

10
推荐指数
2
解决办法
4万
查看次数

Text DFM上下文菜单选项的含义是什么?

当您右键单击Delphi表单时,您将获得弹出上下文菜单.底部选项是Text DFM.可以选中或不选中此选项.选中或取消选中此选项时的含义是什么?

在此输入图像描述

delphi contextmenu dfm

10
推荐指数
1
解决办法
2763
查看次数

如何使用org.eclipse.ui.menus将子菜单项添加到Eclipse Package Explorer上下文菜单项?

我正在尝试从Eclipse Package Explorer的上下文菜单中向项添加子菜单项.

菜单条目已经通过另一个插件中的org.eclipse.ui.popupMenus定义,而不是我正在使用的插件.(该插件被添加到我的插件的依赖项列表中).在子菜单中还添加了一些项目,但也使用了org.eclipse.ui.popupMenus,我试图通过org.eclipse.ui.menus来做到这一点.

首先,我做了以下事情:

  • 我添加了org.eclipse.ui.commands和org.eclipse.ui.menus扩展.
  • 我定义了一个命令,分别是这样的menuContribution:

在此输入图像描述

这会在任何上下文菜单中添加该项...所以我必须从locationURI替换"org.eclipse.ui.popup.any?after = additions",并且我希望我的项目出现在子菜单的id中.

我的问题是:如何确定正确的locationURI? 我使用菜单间谍(ALT + SHIFT + F2)并检查了我想要贡献的子菜单,我收到了以下URI:

菜单:YYY?after = ZZZ,其中:

YYY是已经定义的菜单的id,我想要添加子菜单项ZZZ是我点击的子菜单中的动作的id(使用间谍)

我试过以下,但子菜单项没有出现:

  • 菜单:[?后=加法] YYY
  • 弹出:[?后=加法] YYY

请帮忙 :)

eclipse plugins contextmenu popup submenu

10
推荐指数
1
解决办法
6623
查看次数

如何在wpf中的分层数据模板中显示树视图项的上下文菜单

如何使用分层数据模板在wpf中显示树视图项的上下文菜单?如何仅为CountryTemplate显示上下文菜单:

  <HierarchicalDataTemplate  x:Key="DispTemplate">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding Path=Label}" Style="{StaticResource TreeTextStyle}" ToolTip="{Binding Path=Description}" Tag="{Binding Path=Tag}">
            </TextBlock>
        </StackPanel>
    </HierarchicalDataTemplate>
    <HierarchicalDataTemplate  x:Key="BuildingTemplate"  ItemsSource="{Binding Path=Building}" ItemTemplate="{StaticResource BuildingTemplate}">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding Path=Label}" Style="{StaticResource TreeTextStyle}" ToolTip="{Binding Path=Description}"/>
        </StackPanel>
    </HierarchicalDataTemplate>
    <HierarchicalDataTemplate  x:Key="CityTemplate"  ItemsSource="{Binding Path=City}" ItemTemplate="{StaticResource CityTemplate}">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding Path=Label}" Style="{StaticResource TreeTextStyle}" ToolTip="{Binding Path=Description}"/>
        </StackPanel>
    </HierarchicalDataTemplate>
    <HierarchicalDataTemplate x:Key="CountryTemplate" ItemsSource="{Binding Path=Country}" ItemTemplate="{StaticResource CountryTemplate}">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding Path=RootName}" Style="{StaticResource TreeTextStyle}" ToolTip="{Binding Path=Description}"/>
        </StackPanel>
    </HierarchicalDataTemplate>
Run Code Online (Sandbox Code Playgroud)

c# wpf treeview contextmenu

10
推荐指数
2
解决办法
1万
查看次数

如何使Windows 8按住矩形消失?

如果在Windows 8中按住触摸屏上的文本框,则会在一段时间后出现一个矩形.这是它的图片:

图片

当你松开手指时,这个矩形应该会消失.现在将出现上下文菜单.(例如,请参阅记事本.)

但是,在Delphi程序中,当上下文菜单可见时,矩形仍然存在.菜单关闭后它不会消失.您可以使用带有TMemo的新VCL应用程序尝试此操作.

我该如何解决这个问题?

Delphi仍然使用Windows 8之前的UI事件(即没有WM_Pointer),但除了这个问题外,一切正常.

delphi contextmenu delphi-xe2 windows-8

10
推荐指数
1
解决办法
796
查看次数