studio - mapas de google el nuget con c# y windows form parte 1 gmap net
Panel de desplazamiento similar a Google Maps en WPF (6)
Tengo un lienzo donde estoy dibujando un montón de formas y otros elementos de la interfaz de usuario. Este lienzo puede ser muy grande, así que quiero poner esto en un panel que me permite acercar / alejar con el mouse y desplazarme arrastrando el mouse, al igual que Google Maps. Lo más parecido que pude encontrar fue ScrollViewer, pero obviamente esto no es lo suficientemente cerca.
¿Alguien ha hecho esto en WPF y tiene algún código XAML y / o C?
¡Gracias un montón!
¿Sería útil este enlace? No he entrado en WPF, pero una búsqueda rápida produce este enlace y espero que te ayude:
http://blogs.vertigo.com/personal/swarren/Blog/Lists/Posts/Post.aspx?ID=7
Creo que estás en el camino correcto al usar un lienzo / grilla grande con el ScrollViewer. Recientemente hice algo similar con la misma configuración.
Para acercarse y alejarse, puede usar una ScaleTransform en la propiedad LayoutTransform del lienzo, y luego conectarla al evento MouseWheel. Puede cambiar ScaleX y ScaleY para "acercar" y "alejar", y todos los elementos secundarios del lienzo se "acercarán" también.
Para la panorámica, puede ocultar las barras de desplazamiento en el Visor de desplazamiento y usar el evento MouseMove para llamar a la función ScrollViewers ScrollToHorizontalOffset () para mover las barras de desplazamiento de forma programática. Utilice el enlace que publicó "Soluciones óptimas", es exactamente cómo hacerlo.
Si estuviera en mi máquina de desarrollo, podría darte un código de ejemplo.
Lo que necesita aquí es un "panel de lienzo de virtualización". Vea un ejemplo aquí http://blogs.msdn.com/jgoldb/archive/2008/03/08/performant-virtualized-wpf-canvas.aspx
Más acerca de VirtualizingPanel http://blogs.msdn.com/dancre/archive/2006/02/06/526310.aspx
si recuerdo correctamente aquí, puedes encontrar algo como quieras.
Mira este artículo de CodeProject por Sacha ... Tiene un FrictionScrollViewer que hace el desplazamiento arrastrando el mouse (También es compatible con algunos aspectos físicos ...)
La semana pasada pregunté si DeepZoom estaba previsto para WPF (ya que está disponible en Silverlight). Recibí un enlace a este código que se parece mucho a tu solución deseada: panorámica y zoom en WPF