[wpf] Grid的SharedSizeGroup和*大小调整


Answers

Question

我有一个用户控件,称之为UserControl,它有一个包含以下列定义的网格:

<Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" SharedSizeGroup="A"/>
            <ColumnDefinition Width="Auto" SharedSizeGroup="B"/>
            <ColumnDefinition Width="*" SharedSizeGroup="C"/>
            <ColumnDefinition Width="Auto" SharedSizeGroup="D"/>
            <ColumnDefinition MinWidth="30" Width="*" SharedSizeGroup="E"/>
            <ColumnDefinition MinWidth="30" Width="*" SharedSizeGroup="F"/>
            <ColumnDefinition Width="110" SharedSizeGroup="G"/>
            <ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="H"/>
            <ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="I"/>
            <ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="J"/>
            <ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="K"/>
            <ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="L"/>
</Grid.ColumnDefinitions>

我还有MainWindow,它包含一个网格本身,在网格上定义了以下属性:

Grid.IsSharedSizeScope="True"

现在,我在MainWindow中向网格添加了几个UserControl(每个都是一个单独的行)。 我的目标是让不同UserControls的每个列宽保持同步。 除了一件事,使用SharedSizeGroup时一切正常。 看起来宽度为*的任何列的行为都不应该如此。 看起来像*列宽度被设置为好像它们是自动的。

SharedSizeGroup和*大小调整是否存在任何限制/问题? 这似乎是保持列宽度同步的最佳方法,但我似乎无法解决这个问题。

谢谢。




Related