Silverlight拖放(没有画布)

时间:2010-05-09 18:37:49

标签: silverlight positioning

我正在尝试将Silverlight元素从窗口的一个部分拖放(滑动)到另一个窗口。

我在元素上实现了MouseLeftButtonDown,MouseMove和MouseLeftButtonUp事件处理程序,但我遇到了一些问题。

我见过的所有示例都涉及通过设置Canvas.Left和Canvas.Top属性来移动元素。我试图在Canvas中操作的元素都没有。有没有办法根据鼠标的坐标设置被拖动元素的绝对位置?或者是否有一个预先包装的解决方案来解决我错过的某些问题?

2 个答案:

答案 0 :(得分:3)

除Canvas之外的所有面板都使用某种约束来定位他们的孩子。只有Canvas允许您使用绝对定位。这就是为什么我认为这是实现拖放的唯一方法。

随意在现有面板上使用Canvas。只需记住从原始父项中删除拖动的元素并将其放入画布(或拖动某种副本)并在鼠标上执行相反的操作。

答案 1 :(得分:0)

实现将项目绝对定位在任何容器(不仅仅是Canvas)中的一种方法是使用转换而不是Left / Top属性。例如,要设置为Left = 50 Top = 80,您可以通过转换修改边距值。