Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何制作可以拖动和单击的Silverlight控件?_Silverlight_Drag And Drop_Click - Fatal编程技术网

如何制作可以拖动和单击的Silverlight控件?

如何制作可以拖动和单击的Silverlight控件?,silverlight,drag-and-drop,click,Silverlight,Drag And Drop,Click,我有一个用户控件,可以简化为一个小图标,例如一个小矩形。 然后,我希望该图标是可拖动的,我也希望我的控制权最大化,如果我点击图标 我尝试了几种方法,如果我使用边框作为图标,我可以通过MouseLeftButtonDown、MouseLeftButtonUp和MouseMove事件拖放图标。但是我失去了命令功能,我无法检测到对边界对象的简单单击 然后我试着用一个按钮来显示我的图标。这允许我使用命令模式,但我不能再拖放图标了,因为MouseLeftButtonDown事件没有被触发 任何关于如何实现

我有一个用户控件,可以简化为一个小图标,例如一个小矩形。 然后,我希望该图标是可拖动的,我也希望我的控制权最大化,如果我点击图标

我尝试了几种方法,如果我使用边框作为图标,我可以通过MouseLeftButtonDown、MouseLeftButtonUp和MouseMove事件拖放图标。但是我失去了命令功能,我无法检测到对边界对象的简单单击

然后我试着用一个按钮来显示我的图标。这允许我使用命令模式,但我不能再拖放图标了,因为MouseLeftButtonDown事件没有被触发


任何关于如何实现这一结果的想法都将不胜感激

好的,由于这个类似的问题,我得到了一些有用的东西:

简而言之,我创建了一个名为DragableButton的模板控件,它继承自Button。然后我重写OnMouseLeftButtonDown和OnMouseLeftButtonUp以取消常规行为

现在我有了一个可以移动的小正方形,它支持双击。
我知道它可能不太方便用户使用,但在我找到另一种方法之前,它是可以的。

您如何区分用户单击拖动还是单击最大化?这就是我在这里的原因。想得到一些提示。我考虑了一些时间检查。就像鼠标按下后紧接着鼠标向上移动一样,会被解释为单击,而长时间的鼠标向下移动会触发拖动行为。这是正确的方法吗?我不建议这样做。不同的用户将单击不同的时间。我想说,单击一次应该允许拖动,双击将最大化。不幸的是,Silverlight 4没有双击功能。我会重新考虑这个设计要求。是的,我也考虑过单键和双击,得出了相同的结论。所以我要想出一个新的方法来处理这个问题。谢谢你的帮助。