¿Cómo hacer que Width y Height reflejen ScaleTransform y cómo ScaleTransform configurando Height y Width?

StackOverflow https://stackoverflow.com/questions/1404217

Pregunta

Tengo un problema con respecto al uso de ScaleTransform en un Canvas en Silverlight, el Canvas se escala correctamente, sin embargo, los valores de Altura y Ancho siempre siguen siendo los mismos. p.ej. un lienzo de 100x100 a escala para que parezca que 200x200 sigue siendo 100x100 con respecto a los valores de Altura y Ancho, ¿cómo se pueden actualizar para reflejar el nuevo tamaño?

Otro problema relacionado es cómo alterar la altura y el ancho de un elemento y hacer que este elemento de Escala del lienzo o XAML sea el adecuado. establecer un elemento de 100x100 en 200x200 hace que todo en él sea dos veces más grande: esta debería ser una solución donde solo se establece la altura y el ancho del elemento para alterar la escala.

Estas preguntas están relacionadas con el mismo problema: es de esperar que exista una solución que funcione en Silverlight 3.0


La altura y el ancho deben actualizarse para que cuando este lienzo esté en un ScrollViewer, la barra de desplazamiento se actualice correctamente para el nuevo tamaño; esto sucede si la altura y el ancho se asignan manualmente al nuevo tamaño escalado, pero esto debe funcionar para todos los tamaños.
A la inversa, necesito tener otro lienzo que cuando se modifique su Altura y Ancho, los elementos del interior se escalan de manera adecuada, ya que este será un icono redimensionable para usar en el mismo u otro Lienzo.


Si esto no es posible en Silverlight directamente, de todas formas logrará este efecto en el código, si no en XAML, ya que esto es posible en WPF si se usa un ImageBrush, sin embargo, Silverlight no lo admite y necesita un lienzo escalable. y un lienzo que, cuando se escala, actualiza su propia altura y anchura.

¿Fue útil?

Solución

Un UIElement no tiene conocimiento de ninguna transformación que se le aplique. Por lo tanto, no es posible que sus propiedades de ancho y alto reflejen la transformación.


Bueno, una opción es no usar una transformación en absoluto, sino usar un ViewBox (del kit de herramientas de Silverlight)

El cuadro de vista ajusta su contenido para que siempre llene el cuadro de vista.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top