WPF蒙版消息提示的问题。我用方法1呢系统就点不了,只读了一样。用方法2呢,加入的蒙版又显示在顶部导航中,谢谢大家的赐教。
首页代码
<Grid x:Name="mainGrid">
<Grid.RowDefinitions>
<RowDefinition Height="70"/>
<RowDefinition Height="*"/>
<RowDefinition Height="75"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<!--顶部导航-->
</Grid>
<Grid Grid.Row="1">
<!--内容展示区域-->
<Button Content="打开弹窗" Click="Button_Click"/>
</Grid>
<Grid Grid.Row="2">
<!--这里是首页的底部导航按钮位置-->
</Grid>
</Grid>
以下的2个方法都存在问题,希望得到解决。谢谢了。
//方法一,参考的是:https://www.cnblogs.com/zunzunQ/p/15162982.html
//原理是将首页的内容给清除掉,任何再加入到一个新的拥有蒙版的Grid中,将Grid赋值给首页的内容。
//但是遇到的问题是,整个系统都只读了一样,没办法操作。按道理弹窗HZMessageBoxmessageBox不受影响,可是整个系统都操作不了。
HZMessageBoxmessageBox messageBox = new HZMessageBoxmessageBox(owner);
messageBox win = null;
var layer = new Grid() { Background = new SolidColorBrush(Color.FromArgb(128, 0, 0, 0)) };
UIElement original = win.Content as UIElement;
win.Content = null;
var container = new Grid();
container.Children.Add(original);
container.Children.Add(layer);
win.Content = container;
messageBox.Owner = win;
messageBox.ShowDialog();
//方法二
//这种方法是直接在首页中加入一个新的蒙版的Grid,可是我的首页中的Grid是规定好了的。
//加入的蒙版都是显示在<!--顶部导航-->的位置了。请问有什么怎么可以让新的蒙版的Grid不显示在mainGrid中,或者是不受mainGrid中的分行影响呢。
Grid maskGrid = new Grid();
maskGrid.Width = 1000;
maskGrid.Height = 600;
maskGrid.Background = new SolidColorBrush(Color.FromArgb(0x80, 0xFD, 0x00, 0x00));
// 将半透明的Grid放置在父级窗体的Grid容器中
Grid parentGrid = Application.Current.MainWindow.Content as Grid;
//这里获取的是mainGrid
var aaa = parentGrid.Name;
parentGrid.Children.Add(maskGrid);