如何根据方向更改Grid.RowDefinitions

时间:2019-10-08 21:52:41

标签: c# xamarin

所以我想根据方向更改滚动视图的大小。

我的初始代码是:

<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 *),则如果我返回水平方向则不会更改。

0 个答案:

没有答案