Wpf 网格拆分器卡住了

Wpf 网格拆分器卡住了,wpf,gridsplitter,issharedsizescope,sharedsizegroup,Wpf,Gridsplitter,Issharedsizescope,Sharedsizegroup,我遇到的问题是,在多次拖动后(最初似乎工作正常,每次拖动之间还必须释放鼠标按钮),栅格拆分器似乎卡住了,不允许您再拖动它,或者有时它只拖动几英寸,然后再次卡住 我使用的代码实际上在ItemTemplate中,但为了演示问题,我提取了下面的问题代码 <StackPanel Grid.IsSharedSizeScope="True"> <Grid> <Grid.ColumnDefinitions>

我遇到的问题是,在多次拖动后(最初似乎工作正常,每次拖动之间还必须释放鼠标按钮),栅格拆分器似乎卡住了,不允许您再拖动它,或者有时它只拖动几英寸,然后再次卡住

我使用的代码实际上在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>

(复制并粘贴网格元素,以便stackpanel中有几个网格,我发现当至少有10个网格时,gridsplitter会更快地被卡住)

如上所述,如果您尝试多次调整大小(在每次拖动之间释放鼠标按钮),在5-10次调整大小后,拆分器似乎会卡住,至少对我来说是这样


它似乎只有在尝试向左拖动时才会卡住。

是的,这是一个众所周知的错误:

有一种解决方法,例如绑定到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标记

我忘记了GridSplitter,不过它的想法是使用同一属性的绑定,从而提供共享大小。。。将GridSplitter放在内部,但最重要的是不要使用那些sharedsizegroup标记。