我在使用WPF GridSplitter时遇到了奇怪的行为。
我将适当的HorizontalAlignment属性设置为stretch,当我调整它们的大小时,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>发布于 2011-12-12 14:32:18
我遇到了同样的问题,发现同样的代码在Silverlight中运行良好,而在WPF中却被破坏了,所以我认为这可能是WPF的问题。我的解决办法是推出我自己的GridSplitter版本,它太大了,不能放在这里,所以你可以在my blog.上看到它
发布于 2010-08-16 01:14:04
我也有同样的问题,好像我们画了很多东西。如果我们设置了ShowsPreview属性。用户可以在试图更新屏幕时向外拖动抓取手柄。但是用户线程应该与图形渲染线程分开,所以我不知道。如果用户选择拆分器并使用键盘上的向上和向下箭头,它也可以正常工作。啊,写这篇文章的时候。我尝试使用更大的dragincrement值,这似乎也是有效的。更好的解决方案。这是同一方向的两个网格分割器(屏幕的三个部分),我不知道这是否也是你的设置。
发布于 2014-10-18 04:42:08
我知道这很古老,但也许这能帮到什么人。我遇到了拆分器在快速移动后会跳回原始位置的问题。我的解决方案是在拆分器的PreviewMouseUp事件处理程序中调用CancelDrag。
警告
这可能会帮助其他人,也可能不会帮助其他人,因为我正在使用一个经过大量修改的派生类,它具有额外的功能(包括管理我自己的移动),而我不知道它在一个简单的场景中是否会有所帮助(或根本不起作用)。
https://stackoverflow.com/questions/3369087
复制相似问题