现在我已经能够在WPF中创建有用的用户控件(感谢这个stackoverflow回答),我想在一个页面上以两列的形式放置多个用户控件,并使用户能够根据自己的喜好移动它们,将他们最常使用的拖到顶部等等。
有人可以指点我如何实现这一功能吗?我想在WPF中做到这一点应该相当容易。
现在我已经能够在WPF中创建有用的用户控件(感谢这个stackoverflow回答),我想在一个页面上以两列的形式放置多个用户控件,并使用户能够根据自己的喜好移动它们,将他们最常使用的拖到顶部等等。
有人可以指点我如何实现这一功能吗?我想在WPF中做到这一点应该相当容易。
还有一篇由Bea Stollnitz撰写的文章(如何在数据绑定的ItemsControls之间拖放项目?)。
该文章介绍了一组可重复使用的装饰器,可以在控件之间实现拖放操作。
这篇文章有点高级,但非常有用。
我知道这不完全是你需要的,但它可能会让你接近!!!
Martin Grayson 在 Codeplex 上有一个名为 Blacklight 的项目... 试试拖动面板!!!
供日后参考,CodeProject 上有一个很棒的库,其中包含 DragCanvas,可以让您拖动放置在其上的任何控件:
http://www.codeproject.com/KB/WPF/WPFJoshSmith.aspx
如果您想在控件之间创建“附件”,它还包含一个CenteredContentControl。
更正:
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();
}