0

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

<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>

我希望浏览器有全屏选项。所以我所做的是在调用 EnterFullscreen 的情况下:

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;
    }
4

2 回答 2

2

我相信设置为 Visibility.Hidden 仍然会导致呈现一些空白。

您可以将行(BarGrid)的内容设置为Collapsed,这意味着:“不显示元素,并且在布局中不为其保留空间”。

BarGrid.Visibility = Visibility.Collapsed;

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

还要确保从 RowDefinition 中删除高度设置。代替:

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

利用:

<RowDefinition Height="Auto"/>
于 2013-10-14T09:59:06.353 回答
1

我不知道你是什么意思,EnterFullscreen 事件是什么?

你可以试试这个:

BarGrid.Visibility = Visibility.Hidden;

代替:

BarRowDef.Height = new GridLength(0);
于 2013-10-14T09:47:52.630 回答