現在我可以在WPF中做出有用的用戶控件了(我要感謝this stackoverflow answer)我希望能夠將大量用戶控件放在兩列中的一頁上,並使用戶能夠根據偏好將它們移動,拖動他們使用最多的頂部,等等。如何讓用戶在頁面的任何位置拖放WPF用戶控件?
任何人都可以指向我的代碼,教程等這樣做嗎?我可以想象這在WPF中做起來很容易。
現在我可以在WPF中做出有用的用戶控件了(我要感謝this stackoverflow answer)我希望能夠將大量用戶控件放在兩列中的一頁上,並使用戶能夠根據偏好將它們移動,拖動他們使用最多的頂部,等等。如何讓用戶在頁面的任何位置拖放WPF用戶控件?
任何人都可以指向我的代碼,教程等這樣做嗎?我可以想象這在WPF中做起來很容易。
還有Bea Stollnitz的How can I drag and drop items between data bound ItemsControls?。
這篇文章討論了一個可重複使用的裝置,它可以實現控件之間的拖放。
它有些先進,但非常有用。
Mac Farland這靈不再適用。 – Pomster 2016-03-30 09:33:31
Here是一篇博客文章,讓您開始使用WPF中的拖放功能。
玩得開心。
我知道這不完全是你需要的,但它可能會讓你接近!
Martin Grayson在Codeplex上有一個名爲Blacklight的項目...查看Drag dock Panel !!!
一系列博客posts處理拖放使用附加的屬性。
我正在尋找一種簡單的方法來實現這一點,並遇到以下網頁:http://dotnetslackers.com/ADO_NET/re-191632_Generic_WPF_Drag_and_Drop_Adorner.aspx它看起來像這個實現有一些很好的功能。
以供將來參考,有具有DragCanvas使您能夠拖動放置其上的任何控制在CodeProject上一個偉大的圖書館:
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();
}
「我可以想像,這已經取得了很容易在WPF的事情。」是的,你可以想像它。你必須。 :) – Beska 2009-12-10 16:42:48