问题标签 [contextmenu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2416 浏览

wpf - 具有透明窗口和远程桌面的 WPF 应用程序导致弹出窗口

我有一个带 AllowsTransparency="True" 的 WPF 应用程序,因为我们喜欢时髦的边框。

当我将桌面远程连接到计算机并运行我们的应用程序时,文本框中的菜单和右键单击菜单会在应用程序后面弹出。我通过使背景半透明来验证这一点。这是一个屏幕截图:

http://i662.photobucket.com/albums/uu345/jpchow26/popunder.png

我们在 XP SP3 上使用 .net 3.5 SP1。我读过一些博客文章,这应该通过渲染来修复一些问题,但这对我们来说是一个错误。任何人都知道任何解决方案,还是我对此不走运?

0 投票
2 回答
1494 浏览

.net - 带有弹出菜单的 ToolStripButton?

我正在为类似绘画的程序做 GUI,用户将能够从 ToolStrip 中选择绘图工具。其中一些工具有变化,我希望用户能够通过弹出菜单选择一个。

任何熟悉 Photoshop 工具栏界面的人都知道我在追求什么:用户可以单击按钮并开始使用所选工具,或者从单击时出现的弹出菜单中选择一种工具,然后从那时起该按钮将代表该工具。Also, the button will have the Checked property set to True when that tool-family is selected.

我认为这可以通过 SplitButton 或 DropDownButton 来完成,但它们没有 Checked 属性供用户查看当前选择的工具。因此,我使用了 ToolStripButton 和单击时显示的 ContextMenuStrip。

问题在于,由于我将光标位置显示在 ContextMenuStrip 上,因此取决于单击 ToolStripButton 的哪个部分,弹出菜单可能会部分覆盖它,并且看起来很粗糙。如何获取 ToolStripButton 的屏幕坐标?还是有更好的(并且仍然相对简单)的方法来做到这一点?

0 投票
5 回答
10747 浏览

.net - 仅使用 XAML 在左键单击时显示 ContextMenu

WPF 的默认行为ContextMenu是在用户右键单击时显示它。我希望在ContextMenu用户左键单击时显示。看起来这应该是 上的一个简单属性ContextMenu,但事实并非如此。

我操纵它,以便我LeftMouseButtonDown在代码隐藏中处理事件,然后显示上下文菜单。

我在我的项目中使用 MVVM,这意味着我将DataTemplates 用于具有上下文菜单的项目。摆脱代码隐藏并找到一种使用 XAML 中的触发器或属性来显示上下文菜单的方法会更加优雅。

对此问题有任何想法或解决方案吗?

0 投票
5 回答
7941 浏览

java - Android将项目添加到全局上下文菜单

当您在 Android 中长按某些内容时,会出现一个上下文菜单。我想为TextViews系统中的所有人在此上下文菜单中添加一些内容。

例如,系统使用复制和粘贴来执行此操作。我想添加我自己的,并让它出现在每个应用程序中。

0 投票
3 回答
1715 浏览

menu - 如何在 ECB 中仅对文档项目应用自定义操作

我在文档库的编辑控制块(ECB)中添加了一个菜单项(使用以下 msdn 文章http://msdn.microsoft.com/en-us/library/ms473643.aspx

现在我发现 ECB 中的自定义操作(菜单项)同时针对文档项和文档文件夹显示。那么如何仅对文档项应用自定义操作?

0 投票
2 回答
701 浏览

c# - 上下文菜单

在 C# windows 窗体应用程序中,我想将项目添加到上下文菜单中,以便我可以在上下文菜单中选中或取消选中该项目。可能吗?

0 投票
11 回答
65530 浏览

wpf - 在显示 ContextMenu 之前右键单击选择 TreeView 节点

我想在显示 ContextMenu 之前右键单击选择一个 WPF TreeView 节点。

对于 WinForms,我可以使用类似Find node clicked under context menu的代码,有哪些 WPF 替代方案?

0 投票
2 回答
13556 浏览

wpf - 如何在 ContextMenu 中为 MenuItem 设置 CommandTarget?

(这个问题与另一个问题有关,但差异很大,我认为它值得放在这里。)

这是一个(严重剪断)Window

这是一个(严重剪断)UserControl

通过各种技术,UserControl可以将 a 动态添加到Window. 也许通过窗口中的按钮。也许,更有问题的是,当应用程序启动时,来自持久性后备存储。

从 xaml 可以看出,我认为尝试使用命令来处理用户可以使用Tasks 执行的各种操作对我来说是有意义的。我这样做的最终目标是将所有命令逻辑分解为更正式定义的控制器层,但我试图一次重构一个步骤。

我遇到的问题与UserControl's中的命令和Window 中定义ContextMenu的 command's之间的交互有关。CanExecute当应用程序第一次启动并将保存的任务恢复到窗口上的 TaskStopwatches 时,没有选择实际的 UI 元素。如果我随后立即 r-单击 aUserControlWindow尝试执行ViewTaskProperties命令,则CanExecute处理程序永远不会运行并且菜单项保持禁用状态。如果我然后单击某个 UI 元素(例如,按钮)只是为了获得焦点,则CanExecute处理程序将在运行时将CanExecuteRoutedEventArgs的 Source 属性设置为具有焦点的 UI 元素。

在某些方面,这种行为似乎是已知的——我了解到菜单将通过最后一个具有焦点的元素路由事件,以避免总是从菜单项发送事件。不过,我想我想要的是事件的源是控件本身,或者是控件环绕的任务(但Task不是元素,所以我认为它不能是来源)。

我想也许我错过了 中的属性CommandTarget,我的第一个想法是我希望命令来自 UserControl,所以我自然首先尝试了:MenuItemUserControl

这作为无效绑定失败。我不确定为什么。然后我想,“嗯,我正在查找树,所以也许我需要的是一个 RelativeSource”,然后我尝试了这个:

那也失败了,但是当我再次查看我的 xaml 时,我意识到它ContextMenu位于 UserControl 的属性中,它不是子元素。所以我猜到了(在这一点上这是一个猜测):

这也失败了。

不过,像这样一次失败的猜测和检查就足以让我退缩并意识到我在这里遗漏了某种基本概念。那我该怎么办?

  1. 我的理解是:CommandTarget正确的作用在于它提供了一种修改命令源的机制吗?
  2. 如何从MenuItemin绑定UserControl.ContextMenu到 owning UserControl?还是我做错了什么仅仅是因为我觉得有必要?
  3. 我希望通过单击以生成上下文菜单的元素设置命令的上下文,而不是在上下文菜单之前具有焦点的元素,这不正确吗?也许我需要编写自己的命令而不是使用RoutedUICommand

    /li>
  4. 我的设计中是否存在一些更深层次的基本缺陷?这是我的第一个重要的 WPF 项目,我在自己的时间做这件事作为学习经验,所以我绝对不反对学习卓越的解决方案架构。

0 投票
5 回答
25920 浏览

.net - 默认 ContextMenu 样式 - WPF

我正在尝试修改 WPF 中 ContextMenu 的默认样式。

通常,您可以使用 Edit Control Parts (Template) > Edit a Copy 菜单选项在 Expression Blend 中创建默认值的副本。但是我不知道如何使用 ContextMenu 来做到这一点。知道如何获得要修改的默认样式吗?

我正在尝试禁用通常显示图标的上下文菜单的左侧。

谢谢!

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

0 投票
1 回答
582 浏览

shell - 如何将菜单项添加到带有分隔行的文件的 shell 上下文菜单中?

我想在目录中的选定文件上单击鼠标右键时出现的上下文菜单中添加一个项目。我不知道如何将它添加到菜单的指定位置,我也不知道如何将它与上面和下面的行分开。

我需要修改注册表吗?如果是这样,我该怎么办?