У меня есть Window
с Menu
на нем.Когда Menu
открыт, я бы хотел изменить внешний вид Window
, чтобы он выглядел отключенным.Простое покрытие серым цветом Rectangle
выглядит красиво.Вот разметка Window
:
<Grid>
<!--Content-->
<ContentControl Content="{Binding CurrentViewModel}" />
<!--Container to hide content-->
<Rectangle x:Name="Disabler" Fill="#77000000" Visibility="{Binding DisableWindow, Converter={StaticResource BoolToVisibilityConverter}}" />
</Grid>
Я пытался установить для DisableWindow
значение true, когда подменю открывается, и значение false, когда оно закрывается.Однако установка этого значения, похоже, закрывает подменю.Как я могу убедиться, что подменю остается открытым?
private void MenuItem_SubmenuOpened(object sender, RoutedEventArgs e)
{
MainWindowViewModel mainVM = Window.GetWindow(this).DataContext as MainWindowViewModel;
if (mainVM != null)
{
mainVM.DisableWindow = true;
}
}
Редактировать: Так как Rectangle
установлен на Visible, событие MouseUp происходит на Disabler.Вот почему Подменю закрывается на меня.Я попытался установить IsHitTestVisible = "False" на Rectangle
, но это делает все под ним кликабельным.Есть ли способ удержать Rectangle
от кражи фокуса?