重置GridSplitter完成的大小调整

时间:2018-04-12 05:15:55

标签: xaml uwp uwp-xaml windows-community-toolkit

我使用的是Microsoft.Toolkit.Uwp.UI.Controls中的GridSplitter。用户使用网格分割器调整了两列后,有没有办法重置调整大小并使网格的列宽在调整大小之前恢复到正常宽度?

背景故事:

我有一个页面,在网格中显示两个彼此相邻的用户控件。我在它们之间使用了一个gridsplitter,允许用户调整列的大小。

基于其他交互,网格中显示的用户控件会发生变化。当我"导航" (即更改网格中的用户控件)我想将列宽重置为原始值(在我的情况下,它们以*和2 *开头,所以我希望列重置为1/3和2 / 3s大小分别)。

重置网格列宽的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

如果您给列名称:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition x:Name="Column1" Width="*"/>
        <ColumnDefinition x:Name="Column2" Width="2*"/>
    </Grid.ColumnDefinitions>
    <!-- ... -->
</Grid>

您可以设置代码隐藏中的命令或事件:

Column1.Width = new GridLength(1, GridUnitType.Star);
Column2.Width = new GridLength(2, GridUnitType.Star);

这将重置列宽,GridSplitter将继续工作。

我假设您已将GridSplitter放在同一列中,正如使用ToolO示例应用程序中所做的那样使用BasedOnAlignment调整大小行为。