3

我在使用 WPF GridSplitter 时遇到了奇怪的行为。

我将适当的 Horizo​​ntalAlignment 属性设置为拉伸,当我调整它们的大小时,GridSplitter 会跳来跳去,有时会回到原来的位置,或者只是在拖动它们时跳来跳去.....

有没有其他人看到或知道可能导致这种情况的原因?

谢谢

这是 XAML

<GridSplitter x:Name="grdTreeSplitter" Grid.Row ="1" 
     BorderBrush="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}" 
     BorderThickness="1"
     HorizontalAlignment="Stretch" Panel.ZIndex="0" 
     ResizeBehavior="PreviousAndNext" ResizeDirection="Rows"
     SnapsToDevicePixels="False" ShowsPreview="False" UseLayoutRounding="False"
     DragIncrement="1"
     DragDelta="grdSideExplorerSplitter_DragDelta">
  <GridSplitter.Visibility>
    <MultiBinding 
      ......
    </MultiBinding>
  </GridSplitter.Visibility>
</GridSplitter>
4

4 回答 4

6

我遇到了同样的问题,发现相同的代码在 Silverlight 中运行良好,而它在 WPF 中被破坏,所以我认为这可能是 WPF 的问题。我的解决方法是推出我自己的 GridSplitter 版本,它太大而无法放在这里,所以你可以在我的博客上看到它。

于 2011-12-12T06:32:18.110 回答
2

我有同样的问题,好像我们画了很多东西。如果我们设置了 ShowsPreview 属性。用户可以在尝试更新屏幕时将其拖到抓取手柄之外。但是用户线程应该与图形渲染线程分开,所以我不知道。如果用户选择拆分器并使用键盘上的向上和向下箭头,它也可以正常工作。啊在写这个的时候。我尝试使用更大的值进行拖动增量,这似乎也有效。更好的解决方案。这是同一方向的两个网格分割器(屏幕的三个部分)我不知道这是否也是您的设置。

于 2010-08-15T17:14:03.753 回答
1

我意识到这已经过时了,但也许这会对某人有所帮助。我遇到的问题是在快速分离器移动后分离器会跳回原始位置。我的解决方案是调用CancelDrag拆分器的PreviewMouseUp事件处理程序。

警告

这可能会或可能不会帮助其他人,因为我正在使用一个经过大量修改的具有附加功能的派生类(包括管理我自己的动作),而且我不知道它在一个简单的场景中是否会有所帮助(或根本有效)。

于 2014-10-17T20:42:07.660 回答
0

当我在网格列中有 width="1*" 时,我的 gridsplitter 正在跳跃。我以像素为单位设置了大小,它停止了跳跃。

于 2014-05-24T08:42:20.883 回答