【发布时间】:2010-03-10 10:41:55
【问题描述】:
我有一个带有自定义控件的堆栈面板。我将标准 MouseDragElementBehavior 附加到每个项目。
当我向右拖动时,该项目移动到其他项目下方。
什么是一个可行的解决方案来创造更好的用户体验 - 显示更好的视觉提示 - 项目如何移动以及它将被丢弃的位置。
【问题讨论】:
标签: silverlight silverlight-toolkit
我有一个带有自定义控件的堆栈面板。我将标准 MouseDragElementBehavior 附加到每个项目。
当我向右拖动时,该项目移动到其他项目下方。
什么是一个可行的解决方案来创造更好的用户体验 - 显示更好的视觉提示 - 项目如何移动以及它将被丢弃的位置。
【问题讨论】:
标签: silverlight silverlight-toolkit
经过一番修改后,我意识到没有任何东西可以在堆栈面板中拖动到右侧而不被其他元素覆盖..除非您拖动非常正确的项目..
我做了什么来解决它:
再次强调 - 无论您做什么 - 您都必须使用 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);
}
}
【讨论】: