gpt4 book ai didi

WPF 四元上下文菜单

转载 作者:行者123 更新时间:2023-12-04 07:08:46 26 4
gpt4 key购买 nike

注:此问题已更新,请进一步阅读

你好,

我想创建一个自定义上下文菜单,它有 4 个子菜单,每个子菜单都在自己的象限(左上、右上、左下、右下)。类似于 3ds Studio Max。

到目前为止,我是这样处理这个问题的:
- 创建自定义 WPF 控件,派生自 ContextMenu[1]
- 声明 ContextMenu 的 4 个依赖属性,这些将是显示的菜单,可以从 XAML 中设置。
- AddOwner 到 ContextMenu.IsOpenProperty,添加属性更改通知。
- 当 IsOpen 属性更改时,设置 4 个子上下文菜单的 IsOpen 属性。
- 使用 ContextMenuService 设置上下文菜单的垂直和水平偏移量,使它们出现在每个象限中;绑定(bind)实际的高度和宽度属性来计算偏移量。

[1] 需要从上下文菜单派生,否则不能将其分配给 Window 上的 ContextMenu 属性。

这似乎有效,菜单有问题 不是 保持打开状态(由于焦点在菜单之外,它们正在关闭)但我确信使用 Reflector.NET 可以找到解决方法。

这是我尝试编写的第一个自定义 WPF 控件;并且不确定这是否是最好的方法。

关于如何创建这个四元上下文菜单的任何建议/想法?

最佳答案

我可以想到两种方法,两种方法都不一定那么干净,但如果你有时间的话,它们都有可能发挥作用。

方法一

使用上下文菜单,但通过设置模板使 ContextMenu 真正只显示碰巧打开其他窗口的控件。也许可以做一些技巧,这样打开这些二级菜单就不会把焦点移开。这可能最终仍会导致原始问题。

方法二

如果您将 ContextMenu.StaysOpen 设置为 false,然后尝试自行控制菜单何时关闭,会发生什么情况?

关于WPF 四元上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/694377/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com