我有一个ContextMenu
作为的一部分,TabControl
例如:
<TabControl Name="MyTabControl">
<TabControl.ContextMenu>
<ContextMenu Name="MyContextMenu" IsEnabled="False" StaysOpen="True">
<MenuItem Header="Item1"></MenuItem>
...
</ContextMenu>
</TabControl.ContextMenu>
</TabControl>
如您所见,菜单已禁用。稍后将在程序中启用它,但是现在,它应该保持在禁用状态。问题是,当我右键单击TabControl
并显示禁用的菜单时,它只是停留在第一次打开的位置,没有其他右键单击会移动它,也不会左键单击某处使其消失。
摆脱它的唯一方法是启用它然后右键/左键单击,或者使用MyContextMenu.Visibility = Visibility.Collapsed/Hidden;
我尝试将StaysOpen
-property 设置为False
. 然后菜单将在其禁用状态下打开一次。左键单击后消失,然后即使启用也不会再次出现。
解决它的唯一方法可能是更改StaysOpen
-property 以及IsEnabled
-property,但有点奇怪的是,菜单在禁用状态下仅打开一次,然后不再打开。
我希望任何人都可以向我解释,为什么禁用的菜单不会关闭,而StaysOpen
false 的属性使它只打开一次,因为这对我来说似乎是一种奇怪的行为。