私は次のような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 とともに -property を変更するIsEnabled
ことですが、メニューが無効な状態で一度だけ開き、その後は開かないというのは少し奇妙です。
誰かが私に説明してくれることを願っています.なぜ無効なメニューが閉じず、StaysOpen
false のプロパティが一度だけ開くのか.