El problema con perder el ratón cuando se mueve demasiado rápido, podría ser resuelto
Esto está tomado de MSDN:
La nueva ventana contiene Niño contenido de Popup.
El control Popup mantiene una referencia a su contenido secundario como un elemento secundario lógico. Cuando se crea la nueva ventana, el contenido de Popup se convierte en un elemento visual de la ventana y sigue siendo el elemento lógico de Popup. Por el contrario, Popup sigue siendo el padre lógico de su contenido secundario.
En las otras palabras, el niño de la ventana emergente aparece en la ventana independiente.
Al intentar hacer lo siguiente:
Popup.CaptureMouse()
está capturando la ventana contenedora y no la ventana emergente. En cambio, al usar Popup.Child.CaptureMouse()
, se captura la ventana emergente real.
Y todos los demás eventos deben registrarse usando Popup.Child
.
Como Popup.Child.MouseMove
, Popup.Child.LostCapture
y así sucesivamente
Esto ha sido probado y funciona perfectamente bien
Quizás me esté perdiendo algo simple que un desarrollador avezado de WPF sabría, pero ¿cómo se puede reutilizar? Cuando siembro el control en un contexto XAML diferente (como intentar reutilizarlo en una ventana), cualquier contenido que especifique sobreescribe el elemento Canvas al que está vinculado el thumb. – Vassi
He intentado esta solución. ¡Funciona genial! Gracias Jacob. Me enfrenta solo a un problema: tengo una vista dentro de este Thumb y puedo arrastrar toda la vista, sin embargo, si esa vista tiene una barra de desplazamiento, al arrastrar la barra de desplazamiento está arrastrando el pulgar y, por lo tanto, toda la vista. Hay alguna manera de evitar esto? – Shankar