我遇到了问题,在多个拖拽之后(一开始它似乎很好,你还必须在每次拖动之间释放鼠标按钮),网格拆分器似乎被卡住了,不再允许你拖动它,或者有时候它只会拖动几英寸,然后再次被卡住。
我使用的代码实际上是在一个ItemTemplate中,但是为了演示这个问题,我提取了下面的问题代码。
<StackPanel Grid.IsSharedSizeScope="True">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" SharedSizeGroup="SharedColumnWidth" />
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Label Content="Name"
Grid.Column="0" />
<GridSplitter HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Grid.Column="1"
Width="5" />
<TextBox Grid.Column="2"/>
</Grid>
</StackPanel>(复制并粘贴Grid元素,以便在堆栈面板中有几个网格,当至少有10个网格时,我发现网格分割器会更快地被卡住)。
因此,如上所述,如果您尝试多次调整大小(在每次拖动之间释放鼠标按钮),在5-10次调整大小之后,拆分器似乎会卡住,至少对我来说是这样。
它似乎也只有当你试图拖左时才会被卡住。
发布于 2013-12-04 12:34:05
是的,这是一个众所周知的错误:
http://connect.microsoft.com/VisualStudio/feedback/details/509801/
这里有一些解决办法,例如绑定到ViewModel的属性。会是这样的:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding Path=Width, Mode=TwoWay}" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
....
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding Path=Width, Mode=TwoWay}" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
....
</Grid>所以这两个网格对于第一列的宽度是相同的。
这种方法要求您使用正确的ViewModel。:)
编辑:
我忘记了GridSplitter,但是想法是使用绑定到相同的属性,从而提供共享大小.将GridSplitter放置在内部,但最重要的是不要使用那些SharedSizeGroup标记。
https://stackoverflow.com/questions/20372536
复制相似问题