现在我可以在WPF中创建有用的用户控件了(感谢this stackoverflow answer)我希望能够在一个页面中将多个用户控件放在两列中,并使用户能够根据它移动它们偏好,将他们最常使用的那些拖到顶部等等。
有人能指出我这样做的代码,教程等吗?我可以想象这在WPF中很容易做到。
答案 0 :(得分:4)
Here是一篇博客文章,旨在帮助您开始使用WPF中的拖放功能。
玩得开心。
答案 1 :(得分:1)
Bea Stollnitz还有How can I drag and drop items between data bound ItemsControls?。
文章讨论了一组可重复使用的装饰器,可以在控件之间实现拖放。
它有点先进,但非常有用。
答案 2 :(得分:1)
一系列博客posts,使用附加属性处理拖放。
答案 3 :(得分:0)
我知道这不是你需要的,但它可能会让你接近!!!
Martin Grayson在Codeplex上有一个名为Blacklight的项目...查看Drag dock Panel !!!
答案 4 :(得分:0)
我一直在寻找一种简单的方法来实现这一点,并且遇到了以下网页:http://dotnetslackers.com/ADO_NET/re-191632_Generic_WPF_Drag_and_Drop_Adorner.aspx看起来这个实现有一些不错的功能。
答案 5 :(得分:0)
为了将来参考,codeproject上有一个很棒的库,它有一个DragCanvas,可以拖动放在它上面的任何控件:
http://www.codeproject.com/KB/WPF/WPFJoshSmith.aspx
如果你想在控件之间制作“附件”,它还包含一个CenteredContentControl。
答案 6 :(得分:0)
校正:
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();
}