0

我一直在努力解决 WPF 弹出问题,希望有人能帮助我:) 大纲是这样的:

我们的应用程序存储了一个 UIObject 列表 - 这些表示在视口 3d 中显示的元素(通过成员 UIRenderObject,它只是一个带有位图的平面方形网格)和树视图中(通过成员 TreeViewItem)。

无论哪种情况,当对象检测到右键单击时,它都会尝试打开一个弹出窗口。代码尽可能简单:

ContextMenu contextMenu = new ContextMenu();

//add content

contextMenu.IsOpen = true;

当我在视口中单击时,一切都按预期工作 - 弹出窗口打开,并保持打开状态,直到它失去焦点或做出选择。然而,在树视图中,弹出窗口失去焦点并立即关闭。

我已经尝试过明确设置焦点,明确设置 PlacementTarget,在调用打开弹出窗口之前和之后将鼠标事件标记为已处理,将弹出窗口完全标记为“StaysOpen”和其他十几件事,但它仍然立即关闭.

任何帮助都感激不尽。提前致谢!

4

2 回答 2

0

叹息,事实证明我把事情复杂化了。与其自己管理上下文菜单,不如简单地将其分配给 TreeViewItem 自己的 ContextMenu 并让系统处理它,这是可行的方法。那会学我的。感谢大家的投入:)

于 2009-12-09T08:20:05.883 回答
-1

这是 ContextMenu 的默认行为。或者,您可以使用 Popup 类而不是 ContextMenu。然后,您可以根据需要扩展它。

于 2009-12-07T17:35:35.363 回答