我有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
设置为可见,MouseUp 事件发生在 Disabler 上。这就是子菜单对我关闭的原因。我尝试在 上设置 IsHitTestVisible="False" Rectangle
,但这使得它下面的所有内容都可以点击。有没有办法防止Rectangle
窃取焦点?
我不得不在 Rectangle 上设置 IsHitTestVisible="False",即使这使得它下面的所有内容都可以点击。这是一个黑客,我希望有一个更好的修复。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句