我一直在反对WPF Popup问题,我希望有人可以帮助我:) 大纲如下:
我们的应用程序存储了一个UIObject列表 - 这些元素表示在视口3d中显示的元素(通过成员UIRenderObject,它只是一个平面,方形网格上有位图)和树视图(通过成员TreeViewItem )。
在任何一种情况下,当对象检测到右键单击时,它会尝试打开弹出窗口。 这个代码就像你可以得到的那样直截了当:
ContextMenu contextMenu = new ContextMenu();
//add content
contextMenu.IsOpen = true;
当我在视口中单击时,一切都按预期工作 - 弹出窗口打开,并保持打开状态,直到它失去焦点或进行选择。 但是,在树视图中,弹出窗口会失去焦点并立即关闭。
我已经尝试明确设置焦点,显式设置PlacementTarget,将鼠标事件标记为在打开弹出窗口的调用之前和之后处理,将弹出窗口标记为“StaysOpen”和其他十几个东西,仍然它会立即关闭。
任何帮助将不胜感激。提前谢谢!
答案 0 :(得分:0)
答案 1 :(得分:-1)
这是ContextMenu的默认行为。或者,您可以使用Popup Class而不是ContextMenu。然后您可以根据您的要求进行扩展。