Итак, я хотел изменить размер моего прокрутки в зависимости от ориентации.
Мой начальный код:
<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 *), если я вернусь к горизонтальной, она не изменится.