如何使用WebView全宽度
本文关键字:WebView 何使用 | 更新日期: 2023-09-27 18:13:43
在我的Windows Store应用程序中,我只有一个WebView:
<Grid SizeChanged="Grid_SizeChanged"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<WebView x:Name="myWebView"
Width="Auto"
ScrollViewer.VerticalScrollMode="Auto"/>
</Grid>
我想将宽度设置为不同屏幕尺寸或方向上的最大可用值。
我试过让沙砾本身的宽度来设置WebView的宽度。但是Grid只给我包含WebView的宽度(如果设置为任何值)。如果Width="Auto",则宽度为零。如果我将WebView的宽度设置为300,那么网格的宽度也是300。
Grit的高度是正确的,在改变方向后,我可以将WebView的高度设置为Grit值。宽度也一样
如何安排WebView使用可用空间?
编辑:也许在加载内容的问题?
protected override void OnNavigatedTo(NavigationEventArgs e)
{
navigationHelper.OnNavigatedTo(e);
DetailParms parms = e.Parameter as DetailParms;
//myWebView.Width = parms.webWidth;
myWebView.NavigateToString(parms.html);
}
我可以设置WebView。宽度,值来自parms。但是在打电话的时候,我也不知道有空闲的空间。
下面是完整的XAML:<Page x:Name="pageRoot" x:Class="CTDICT.Programs.MemoDetails" DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:CTDICT.Programs" xmlns:common="using:CTDICT.Common" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> <Grid x:Name="myGrid" SizeChanged="Grid_SizeChanged" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <WebView x:Name="myWebView" ScrollViewer.VerticalScrollMode="Auto"/> </Grid> </Page>
将Width="Auto"
从WebView
中移除。不要给任何控件设置任何宽度/高度。Grid
会根据大小膨胀,因此WebView
也会膨胀。
我不知道为什么不工作。但是我可以计算剩余的宽度并设置WebView.Width.
我在grid_sizechange中这样做,因为它会在方向改变时被触发。
这段代码现在为我工作了:
private void Grid_SizeChanged(object sender, SizeChangedEventArgs e)
{
double remainingWidth = Windows.UI.Xaml.Window.Current.Bounds.Width-362;
myWebView.Width = remainingWidth;
myWebView.Height = e.NewSize.Height;
}
有趣:在设置WebView之后。这里的Width, grid_sizechange再次被调用。第二次,网格的e.NewSize.Width反映了WebSize。宽度刚刚改变。这意味着,网格。宽度是在WebView之后设置的。宽度改变了。与Xyroid所说的和Rico Suter已经证实的相反。