所以我想根据方向更改滚动视图的大小。
我的初始代码是:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*" x:Name="RowDefModifier" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ScrollView Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Padding="2,2,2,0" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" x:Name="webPanel" VerticalScrollBarVisibility="Always" >
<WebView x:Name="webView"></WebView>
</ScrollView>
...
我正在这样更改RowDefModifier的高度:
protected override void OnSizeAllocated(double width, double height)
{
if (width > height)
{
RowDefModifier.Height = new GridLength(1.0, GridUnitType.Star);
}
else
{
RowDefModifier.Height = new GridLength(2.0, GridUnitType.Star);
}
base.OnSizeAllocated(width, height);
}
问题是,当第一次将“高度”设置为“ 2 *”时,将其重新设置为“ 1 *”将不再起作用。
例如,如果第一次将“高度”设置为“ 1 *”,然后将方向更改为垂直(2 *),则如果我返回水平方向则不会更改。