11

现在我可以在 WPF 中制作有用的用户控件(感谢这个 stackoverflow 答案),我希望能够将大量用户控件放在一个页面上的两列中,并使用户能够根据偏好移动它们,拖动他们使用最多的那些,等等。

谁能指出我这样做的代码、教程等?我可以想象这在 WPF 中很容易做到。

4

7 回答 7

4

是一篇博客文章,可帮助您开始使用 WPF 中的拖放功能。

玩得开心。

于 2009-02-04T09:18:17.613 回答
1

还有我如何在数据绑定的 ItemsControls 之间拖放项目?通过比斯托尔尼茨。

这篇文章讨论了一组可重用的装饰器,它们可以在控件之间进行拖放。

它有点先进,但非常有用。

于 2009-02-04T09:32:32.733 回答
1

一系列使用附加属性处理拖放的博客文章。

于 2009-02-04T09:41:50.980 回答
0

我知道这不是你所需要的,但它可能会让你接近!!!

Martin Grayson在 Codeplex 上有一个名为Blacklight的项目……查看 Drag Dock 面板!!!

于 2009-02-04T09:33:05.023 回答
0

我也在寻找一种简单的方法来完成此操作,并遇到了以下网页:http ://dotnetslackers.com/ADO_NET/re-191632_Generic_WPF_Drag_and_Drop_Adorner.aspx看起来这个实现有一些不错的功能。

于 2009-12-30T00:51:00.457 回答
0

为了将来参考,codeproject 上有一个很棒的库,它有一个 DragCanvas,可以让您拖动放置在其上的任何控件:

http://www.codeproject.com/KB/WPF/WPFJoshSmith.aspx

It also contains a CenteredContentControl if you want to make "attachments" between controls.

于 2011-11-18T11:00:55.323 回答
0

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();
}
于 2012-02-04T00:06:03.470 回答