wpf - ejemplo - arrastrar y soltar jquery
¿Cómo habilitar al usuario para arrastrar/soltar los controles de usuario de WPF en cualquier lugar de la página? (7)
Ahora que puedo hacer controles de usuario útiles en WPF (gracias a esta respuesta stackoverflow ) quiero poder poner numerosos controles de usuario en una página en dos columnas y permitir que el usuario pueda moverlos de acuerdo a sus preferencias, arrastrando el los que usan más en la parte superior, etc.
¿Alguien puede indicarme código, tutoriales, etc. que hacen esto? Me imagino que esto se ha hecho bastante fácil de hacer en WPF.
¡Sé que esto no es exactamente lo que necesitas, pero puede que te acerque!
Martin Grayson tiene un proyecto en Codeplex llamado Blacklight ... ¡Eche un vistazo al Panel de Drag Dock!
También hay ¿Cómo puedo arrastrar y soltar elementos entre ItemsControls vinculados a datos? por Bea Stollnitz.
El artículo habla sobre un conjunto reutilizable de adornos que permiten arrastrar y soltar entre los controles.
Es algo avanzado, pero muy útil.
Una serie de publicaciones de blog que tratan sobre Arrastrar y Soltar usando propiedades adjuntas.
Aquí hay una publicación de blog para que comiences con la funcionalidad de arrastrar y soltar en WPF.
Que te diviertas.
Estaba buscando una manera fácil de lograr esto también y me encontré con la siguiente página web: http://dotnetslackers.com/ADO_NET/re-191632_Generic_WPF_Drag_and_Drop_Adorner.aspx Parece que hay algunas buenas características de esta implementación.
Para referencia futura, hay una gran biblioteca en el proyecto de código que tiene un DragCanvas que le permite arrastrar cualquier control colocado en él:
http://www.codeproject.com/KB/WPF/WPFJoshSmith.aspx
También contiene un CenteredContentControl si desea hacer "attachments" entre controles.
Corrección:
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();
}