我有带有自定义控件的堆栈面板。我将标准 MouseDragElementBehavior 附加到每个项目。
当我向右拖动时,该项目在其他项目下方移动。
什么是创建更好的用户体验的可行解决方案- 显示更好的视觉提示 - 项目如何移动以及它将被丢弃在哪里。
我有带有自定义控件的堆栈面板。我将标准 MouseDragElementBehavior 附加到每个项目。
当我向右拖动时,该项目在其他项目下方移动。
什么是创建更好的用户体验的可行解决方案- 显示更好的视觉提示 - 项目如何移动以及它将被丢弃在哪里。
经过一番修补后,我意识到没有任何东西可以在堆栈面板中拖动到右侧而不被其他元素覆盖..除非您拖动非常正确的项目..
我做了什么来解决它:
再次强调 -无论你做什么 - 你必须使用 StackPanel.Children 集合中的最后一个元素进行操作......
如果 MouseDragElementBehavior 不能按您需要的方式工作,您总是可以从该类下降并根据您的需要对其进行自定义。例如:
public class DragBehvaior : MouseDragElementBehavior
{
public DragBehvaior()
{
this.DragBegun += new MouseEventHandler(DragBehvaior_DragBegun);
}
void DragBehvaior_DragBegun(object sender, MouseEventArgs e)
{
var element = this.AssociatedObject as UIElement;
// Calculate the correct ZIndex here.
Canvas.SetZIndex(element, 100);
}
}