重置GridSplitter所完成的调整大小

7
我正在使用Microsoft.Toolkit.Uwp.UI.Controls中的GridSplitter。在用户使用网格拆分器调整两列大小后,是否有一种方法可以重置该调整并使网格的列宽返回到调整之前的正常宽度?
背景:
我有一个页面,在网格中并排显示两个用户控件。我在它们之间使用了网格拆分器,以允许用户调整列宽。
基于其他交互,显示在网格中的用户控件会更改。当我“导航”(即在网格中更改用户控件)时,我希望将列宽重置为其原始值(在我的情况下,它们开始为*和2 *,因此我希望列重置回1/3和2/3的大小)。
重置网格的列宽的最佳方法是什么?
1个回答

1
如果你给你的列命名:
<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放在相同的列中,并正在使用基于对齐方式的调整大小行为,就像Toolkit示例应用程序中所做的那样。

1
我正在尝试使用WPF样式来进行重置,而不是通过代码后台的方式。到目前为止还没有成功。在网格分隔器未触及网格大小调整时,重置可以正常工作。一旦使用网格分隔器移动内容,基于样式的网格重置就无法再次工作了,原因不明。我只能通过代码后台来实现它。 - Chandan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接