【发布时间】:2014-11-07 00:53:02
【问题描述】:
我什至无法理解这一点。我在.net 4.5.1 中有一个gridsplitter。我创建了一个新的 wpf 应用程序,然后将下面的代码放在主窗口上。 我对此的期望:在一个有两列的网格中,当我将拆分器向右拖动时,右侧的列应该减小,而左侧的列应该增加。当我将拆分器向左拖动时,左侧列的大小应减小,右侧的列大小应减小。 我看到的行为:当我将拆分器向右拖动时,右侧的列会减小,而左侧的列会减小。所以两个文本框的宽度变小了。当我将拆分器向左拖动时,拆分器停在网格的中心,没有其他任何事情发生。我没有最小宽度或宽度。有人知道这个吗?
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" SharedSizeGroup="A" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" SharedSizeGroup="A" />
</Grid.ColumnDefinitions>
<TextBox Grid.Column="0" FontSize="55" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextWrapping="Wrap" Text="Hi" />
<GridSplitter Grid.Column="1" Width="5" Background="Transparent" ResizeDirection="Columns" VerticalAlignment="Stretch" />
<TextBox Grid.Column="2" FontSize="55" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextWrapping="Wrap" Text="there" />
</Grid>
【问题讨论】:
-
你想要的确切行为是什么?
GridSplitter可以同时调整(缩小和增长)2 列。在您的代码中,它会调整当前列和第三列(下一列)的大小。然而,第一列的Width与第三列的相同(都等于*)。当您将网格向左拖动直到当前列的宽度变为0时,它当然会停在那里,并且左右列是整个网格宽度的50%。 -
我编辑了问题以更好地解释正在发生的事情。
-
我已经添加了这个问题的答案。解决问题相当容易。
标签: wpf