XAML-在调整大小时,如何使网格内容自动扩展以填充窗口?

时间:2016-06-07 10:51:24

标签: wpf xaml user-interface resize presentation

我正在我的应用程序的XAML中的Grid中显示一个Web浏览器。浏览器当前正确显示网站,并允许用户与网站进行完全交互。

但是,出于某种原因,我在显示浏览器的<Grid>在调整大小时没有展开以填充应用程序窗口,并且看起来我使用的CefSharp:ChromiumWebBrowser我的网络浏览器没有展开以填充我正在显示它的<Grid> ...

当我运行我的应用程序时,它当前显示如下:

screenshot of app

显示浏览器的<Grid>的边框是绿色矩形 - 如您所见,浏览器尚未展开以填充此区域。如果我通过拖动其中一个角来展开应用程序的窗口,则窗口会调整大小以显示:

second screenshot of app

从第二个屏幕截图中,您可以看到应用程序窗口已调整大小,但内容尚未展开以填充窗口的新大小。为什么是这样?如何让网站填充我正在显示它的browser元素的大小,以及如何让browser本身填充<grid>中的所有可用空间它显示在哪?

我用来在我的GUI中显示的XAML是:

<Grid x:Name="grdBrowserHost" MinHeight="900" Height="Auto" MinWidth="1100" Width="Auto" Margin="0,0,0,0" DockPanel.Dock="Bottom" Grid.ColumnSpan="4" >
    <cefSharp:ChromiumWebBrowser Name="browser" Height="Auto" Width="Auto" Grid.Row="0" Address="https://web.riviam.com" />
</Grid>

我尝试编辑XAML以设置<Grid>行&amp;列定义为auto:

<Grid x:Name="grdBrowserHost" MinHeight="900" Height="Auto" MinWidth="1100" Width="Auto" Margin="0,0,-137,0" DockPanel.Dock="Bottom" Grid.ColumnSpan="4" >
                        <Grid.RowDefinitions>
                            <RowDefinition Height="*" />
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>
                        <cefSharp:ChromiumWebBrowser Name="browser" Height="Auto" Width="Auto" Grid.Row="0" Address="www.google.com" />
                    </Grid>

但这实际上对我的应用程序在运行时的显示方式没有影响。

如何解决此问题,以便动态调整<Grid>及其内容的大小,以便在调整窗口大小时填充窗口大小?

1 个答案:

答案 0 :(得分:-1)

<Grid x:Name="grdBrowserHost" MinHeight="900" Height="Auto" MinWidth="1100" Width="Auto" Margin="0,0,0,0" DockPanel.Dock="Bottom" Grid.ColumnSpan="4" >
  <cefSharp:ChromiumWebBrowser 
     Name="browser" 
     Height="{Binding ElementName=grdBrowserHost,Path=ActualHeight}" 
     Width="{Binding ElementName=grdBrowserHost,Path=ActualWidth}" 
     Grid.Row="0" Address="https://web.riviam.com" />
</Grid>