Pregunta

Cómo calcular el tamaño de escala relativo del Control de usuario como imagen (en el editor de imágenes).

Ejemplo (100%):

 texto alternativo
(fuente: stegnar.com )

Reducido UC (70%):

 texto alternativo
(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).

¿Fue útil?

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.

Artefactos introducidos por el uso de viewbox

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

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