我的堆栈面板中包含自定义控件。我将标准MouseDragElementBehavior附加到每个项目。
当我向右拖动时,项目会移动到其他项目下方。
什么是可行的解决方案,以创造更好的用户体验 - 显示更好的视觉提示 - 项目如何移动以及它将被丢弃的位置。
答案 0 :(得分:1)
经过一些修补后,我意识到没有任何东西可以在堆栈面板中被拖动到右侧而不会被其他元素覆盖..除非你拖动非常正确的项目..
我做了什么来解决它:
再次强调 - 无论你做什么 - 你必须使用StackPanel.Children集合中的最后一个元素进行操作 ....
答案 1 :(得分:0)
如果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);
}
}