我的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;
}
答案 0 :(得分:2)
我认为设置为Visibility.Hidden仍然会导致渲染一些空格。
您可以将行的内容(BarGrid)设置为Collapsed,这意味着:“不显示元素,也不要在布局中为其保留空间”。
BarGrid.Visibility = Visibility.Collapsed;
编辑:评论中的其他详细信息
还要确保从RowDefinition中删除高度设置。 而不是:
<RowDefinition Height="70" Name="BarRowDef"/>
使用:
<RowDefinition Height="Auto"/>
答案 1 :(得分:1)
我不确定你是什么意思,EnterFullscreen事件是什么?
你可以试试这个:
BarGrid.Visibility = Visibility.Hidden;
而不是:
BarRowDef.Height = new GridLength(0);