後,我有一個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
- 屬性設置爲False
。然後菜單將在禁用狀態下打開一次。左擊消失後,即使啓用,也不會再出現。
唯一的解決辦法是改變StaysOpen
屬性以及IsEnabled
屬性,但是它有點奇怪,菜單在其禁用狀態下僅打開一次,然後不再有效。
我希望有人可以給我解釋一下,到底爲什麼被禁用的菜單不會關閉,並在虛假的財產StaysOpen
使得它恰好打開一次,因爲它似乎是一個怪異的行爲給我。
而不是將'ContextMenu'嘗試設置禁用爲空。顯示禁用上下文菜單有什麼用處? –
當我將它設置爲null時,它只是「走了」不是嗎?我在WPF代碼中定義了菜單,因爲它非常簡單,直到程序中的某個點才需要它。想象一下,我在「TabControl」的一個選項卡中有某些項目,並且只想爲某些項目啓用菜單,但在程序開始時,任何選項卡中都沒有項目。 – phil13131