Как изменить Grid.RowDefinitions в зависимости от ориентации - PullRequest
0 голосов
/ 09 октября 2019

Итак, я хотел изменить размер моего прокрутки в зависимости от ориентации.

Мой начальный код:

<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 *), если я вернусь к горизонтальной, она не изменится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...