现在我可以在 WPF 中制作有用的用户控件(感谢这个 stackoverflow 答案),我希望能够将大量用户控件放在一个页面上的两列中,并使用户能够根据偏好移动它们,拖动他们使用最多的那些,等等。
谁能指出我这样做的代码、教程等?我可以想象这在 WPF 中很容易做到。
现在我可以在 WPF 中制作有用的用户控件(感谢这个 stackoverflow 答案),我希望能够将大量用户控件放在一个页面上的两列中,并使用户能够根据偏好移动它们,拖动他们使用最多的那些,等等。
谁能指出我这样做的代码、教程等?我可以想象这在 WPF 中很容易做到。
这是一篇博客文章,可帮助您开始使用 WPF 中的拖放功能。
玩得开心。
一系列使用附加属性处理拖放的博客文章。
我知道这不是你所需要的,但它可能会让你接近!!!
Martin Grayson在 Codeplex 上有一个名为Blacklight的项目……查看 Drag Dock 面板!!!
我也在寻找一种简单的方法来完成此操作,并遇到了以下网页:http ://dotnetslackers.com/ADO_NET/re-191632_Generic_WPF_Drag_and_Drop_Adorner.aspx看起来这个实现有一些不错的功能。
为了将来参考,codeproject 上有一个很棒的库,它有一个 DragCanvas,可以让您拖动放置在其上的任何控件:
http://www.codeproject.com/KB/WPF/WPFJoshSmith.aspx
It also contains a CenteredContentControl if you want to make "attachments" between controls.
Correction:
private void Control_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) {
isDragging = true;
var draggableControl = sender as UserControl;
clickPosition = e.GetPosition(this.Parent as UIElement);
var transform = RenderTransform as TranslateTransform;
if (transform != null) {
clickPosition.X -= transform.X;
clickPosition.Y -= transform.Y;
}
draggableControl.CaptureMouse();
}