1
我有2 StackPanel
s - 一个包含Ellipse
,另一个包含任何内容。如何在WPF中拖放时保持UIELement的形状
我想将Ellipse
从一个堆栈面板拖到另一个。实际拖动&下降已经完成,工作正常,但我想知道如何保持在我的鼠标光标的顶端Ellipse
形状。
即使Windows窗体的例子也不错,我可以适应它。
我有2 StackPanel
s - 一个包含Ellipse
,另一个包含任何内容。如何在WPF中拖放时保持UIELement的形状
我想将Ellipse
从一个堆栈面板拖到另一个。实际拖动&下降已经完成,工作正常,但我想知道如何保持在我的鼠标光标的顶端Ellipse
形状。
即使Windows窗体的例子也不错,我可以适应它。
您想在拖动过程中添加拖动装饰器。我已经看到这样做有几种不同的方式,但快速搜索导致this behavior,这有一个很好的模式,因为我见过。具有代表性的样品是:
void itemsControl_PreviewDragEnter(object sender, DragEventArgs e)
{
ItemsControl itemsControl = (ItemsControl)sender;
if (e.Data.GetDataPresent(ItemType))
{
object data = e.Data.GetData(ItemType);
InitializeDragAdorner(itemsControl, data, e.GetPosition(itemsControl));
InitializeInsertAdorner(itemsControl, e);
}
e.Handled = true;
}
他们在DragAdorner
类很好地包裹起来的阻力装饰的所有演示。 (我希望我是这样做的,实际上)
我也看到了用最初拖动元素的可视化画笔构建装饰的技巧,但我认为我最喜欢这种方法。
顺便说一句:在接近几个不同的时间之后,我强烈建议将你的拖放代码包装到一个行为中。否则,你会把它放在所有的地方。获得MVVM的指挥权可能非常棘手,但它是值得的,恕我直言。
感谢您的帮助:) – Kamikaze 2010-03-23 18:22:55