使用文本框WPF XAML覆盖网格
本文关键字:XAML 覆盖 网格 WPF 文本 | 更新日期: 2023-09-27 18:27:02
我有一个带有一些文本块和按钮的应用程序,我正在尝试加载TextBlock,它将整个网格隐藏在后面,然后根据我的可见性绑定再次显示它。问题是,Loading文本不显示,但Main网格覆盖了所有按钮和东西后面的网格。有没有合适的热方法?
注意:如果没有Loading TextBlock,它通常只使用一个矩形来隐藏/显示我的应用程序。
我的代码如下:
<Grid Margin="2" Background="Black">
<Border BorderThickness="2" BorderBrush="Black">
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="LOADING..." Visibility="{Binding DownloadingWeather, Converter={StaticResource boolToVisibilityConverter}, ConverterParameter=False}" FontSize="20" Foreground="White">
<Grid Visibility="{Binding DownloadingWeather, Converter={StaticResource boolToVisibilityConverter}, ConverterParameter=True}">
<Grid.Background>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="Gray" Offset="0.0" />
<GradientStop Color="Black" Offset="0.5" />
<GradientStop Color="Black" Offset="0.7" />
<GradientStop Color="Gray" Offset="1.0" />
</LinearGradientBrush>
</Grid.Background>
<Grid Grid.Row="4">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<!-- Some Stuff like buttons and textblocks here-->
</Grid>
<Grid.RowDefinitions>
<RowDefinition Height="3*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- Some Stuff like buttons and textblocks here-->
</Grid>
</TextBlock>
</Border>
</Grid>
目前Grid
是TextBlock
的一部分。因为Border
只能带一个子级,所以您需要创建一个同时包含Text
和Grid
的Grid
,以便只显示
<Border>
<Grid>
<TextBlock ... Text="LOADING..." Visibility="{Binding DownloadingWeather, Converter={StaticResource boolToVisibilityConverter}, ConverterParameter=False}"/>
<Grid Visibility="{Binding DownloadingWeather, Converter={StaticResource boolToVisibilityConverter}, ConverterParameter=True}">
<!-- Grid content -->
</Grid>
</Grid>
</Border>