¿Cómo se ajusta el tamaño de escala del control de usuario?
-
06-07-2019 - |
Pregunta
Cómo calcular el tamaño de escala relativo del Control de usuario como imagen (en el editor de imágenes).
Ejemplo (100%):
(fuente: stegnar.com )
Reducido UC (70%):
(fuente: stegnar.com )
Bueno, lo logro en el editor de imágenes, pero me gustaría en WPF. :) Necesito esto para ajustar mi aplicación a una resolución de pantalla diferente, sin que nada se oculte (sin barras de desplazamiento).
Solución
Puede probar el control ViewBox que escala su contenido hacia arriba / abajo para que ocupe el espacio disponible.
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1"
Title="Window1">
<Grid>
<Viewbox StretchDirection="Both" Stretch="Uniform">
<local:UserControl1 Height="600" Width="600"/>
</Viewbox>
</Grid>
Otros consejos
puede colocar todo el contenedor en un ViewBox
<Viewbox StretchDirection="Both" Stretch="Uniform">
<Grid>...</Grid>
</Viewbox>
¡no tiene que colocar cada bloque de texto en él!
El uso de Viewbox (como dijo Milan Nankov) es una gran idea. Una cosa que debo advertirte es que también amplía o reduce otros aspectos visuales.
Por ejemplo, un cuadro de texto con una dimensión de 200 X 1000 es muy diferente de un cuadro de texto con una dimensión de 20 X 100 con un zoom de 10x.
WPF proporciona muchas opciones de diseño que pueden cambiar la dimensión de los controles de acuerdo con el tamaño del contenedor. Pero no cambia el tamaño del texto. Viewbox supera este problema, pero presenta otro problema. Compruebe la imagen a continuación que muestra el mismo cuadro de texto en un cuadro de vista antes y después de hacer zoom.
Un truco que podría usarse es colocar cada bloque de texto en un cuadro de vista. Pero supongo que sería una exageración, y en serio no tengo ningún respaldo para este truco. Verifíquelo usted mismo y responda si es práctico o no.
Otro truco podría ser vincular la altura del control al tamaño de fuente. Necesitaríamos un convertidor en ese caso. Consulte esta respuesta. Cambiar el tamaño de la fuente en TextBox en Grid