WPF覆盖Grid Row占用的区域(或更好,覆盖2行)

时间:2016-12-04 05:53:52

标签: wpf xaml

我有一个有3行的网格。第2行是最高的,它承载WebBrowser控件。我想在某些时候用边框覆盖webbrowser。

什么是WPF方式呢?

我下面的内容是我的初学者xaml。我使用Visibility折叠我的边框以显示WebBrowser或将我的边框设置为Visible以覆盖WebBrowser。

然而,在这样做之后,我最终将第二行的一半用浏览器覆盖,而另一半则没有任何内容。

基本上,我想模拟一个Toast消息,它显示并覆盖GridRow 2中WebBrowser控件的整个区域。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>

    <ScrollViewer HorizontalScrollBarVisibility="Auto"
                  VerticalScrollBarVisibility="Auto" 
                  Grid.Row="2">
        <WebBrowser x:Name="wb"
            Loaded="wb_Loaded"/>           
    </ScrollViewer>

    <Border x:Name="myBorder" Background="White" 
            Visibility="Collapsed" 
            Grid.Row="2" RowSpan="2">
        <StackPanel HorizontalAlignment="Center" 
                    VerticalAlignment="Center">
            //some text here
        </StackPanel>
    </Border>

     <DockPanel HorizontalAlignment="Stretch" Grid.Row="3">
        ...
     </DockPanel>
</Grid>

1 个答案:

答案 0 :(得分:1)

Grid中使用Row:2并显示/隐藏Border/BrowserControl,因为Grid允许您将内容叠加在一起。