使用WPF GridSplitter时,我遇到了奇怪的行为。
我将相应的HorizontalAlignment属性设置为拉伸,当我调整它们的大小时,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>
答案 0 :(得分:5)
我有同样的问题,发现相同的代码在Silverlight中工作正常,而在WPF中被破解,所以我认为它可能是WPF的一个问题。我的修复是推出我自己的GridSplitter版本,这个版本太大了,无法放在这里,所以你可以在my blog.上看到它
答案 1 :(得分:2)
我有同样的问题,似乎我们正在绘制很多东西。如果我们设置了ShowsPreview属性。在尝试更新屏幕时,用户可以在抓握手柄外拖动。但是用户线程应该与图形渲染线程分开,所以我不知道。如果用户选择分割器并使用键盘上的向上和向下箭头,它也可以正常工作。写这篇文章的时候啊。我尝试使用更大的值来进行dragincrement,这似乎也有效。好的解决方案这是两个同一方向的网格分裂器(屏幕的三个部分)我不知道这是否也是你的设置。
答案 2 :(得分:0)
当我在网格列中有width =“1 *”时,我的网格探测器正在跳跃。 我以像素为单位设置尺寸并停止跳跃。
答案 3 :(得分:0)
我意识到这是旧的,但也许这会对某人有所帮助。我遇到的问题是,快速分离器移动后分离器会跳回到原始位置。我的解决方案是在分割器的CancelDrag
事件处理程序中调用PreviewMouseUp
。
<强>买者强>
这可能会或可能不会帮助其他人,因为我正在使用经过大量修改的派生类以及其他功能(包括管理我自己的动作),而我不知道它是否会在一个简单的过程中提供帮助(或者根本不起作用)场景。