WPF 从窗口中删除网格

本文关键字:删除 网格 窗口 WPF | 更新日期: 2023-09-27 18:35:18

我的WPF应用程序中有这个Grid

<Grid Name="MainGrid">
    <Grid.RowDefinitions>
        <RowDefinition Height="70" Name="BarRowDef" />
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Grid Name="BarGrid" Grid.Row="0" Height="70" VerticalAlignment="Top" Background="#FF802C2C">
        <Button Content="History" Focusable="False" Width="100" Height="60" HorizontalAlignment="Left" VerticalAlignment="Center" Name="HistoryButton" Click="HistoryButton_Click"/>
    </Grid>
    <Grid Name="MiddleGrid" Grid.Row="1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <WebBrowser HorizontalAlignment="Stretch" Name="Browser" VerticalAlignment="Stretch" LoadCompleted="Finish_Load" Grid.Column="1"/>
    </Grid>

</Grid>

我希望浏览器将有全屏选项。所以我所做的是在进入全屏的情况下被称为:

BarRowDef.Height = new GridLength(0);

发生的事情是浏览器从页面顶部开始,但在底部我有一个大小为 BarGrid 的空白区域。知道可能是什么问题吗?

编辑

这是完整的EnterFullScreenMode方法:

public void EnterFullScreenMode()
    {
        BarRowDef.Height = new GridLength(0);
        if (this.WindowState == System.Windows.WindowState.Maximized)
        {
            this.WindowState = System.Windows.WindowState.Normal;
        }
        this.WindowStyle = System.Windows.WindowStyle.None;
        this.WindowState = System.Windows.WindowState.Maximized;
        IsFullScreen = true;
    }

WPF 从窗口中删除网格

我相信

设置为可见性.隐藏仍然会导致呈现一些空格。

您可以将行的内容 (BarGrid) 设置为"折叠",这意味着:"不显示元素,也不在布局中为其保留空间"。

BarGrid.Visibility = Visibility.Collapsed;

编辑:评论中的其他详细信息

还要确保从行定义中删除高度设置。而不是:

<RowDefinition Height="70" Name="BarRowDef"/>

用:

<RowDefinition Height="Auto"/>

我不确定你是什么意思,进入全屏事件是什么?

你可以试试这个:

BarGrid.Visibility = Visibility.Hidden;

而不是:

BarRowDef.Height = new GridLength(0);