wpf - ¿Cómo se ajusta Silverlight para cambiar el tamaño del contenido de texto?
silverlight-2.0 font-size (3)
Tengo un control de usuario (a continuación), estoy vinculando el texto a una fuente de datos e instilando un montón de controles de usuario.
Quiero que el tamaño del texto sea el mayor posible que aún se ajuste a los límites del control. En la programación de Windows, pude medir el tamaño del texto disminuyendo el tamaño de la fuente hasta que se ajuste a las dimensiones de destino.
¿Hay alguna manera de hacer esto en Silverlight?
Sé que presumiblemente podría hacerlo de una manera similar, pero ¿hay alguna forma "más agradable" de hacerlo?
<Grid x:Name="gdBubble" Width="180" Height="95">
<Ellipse x:Name="elBubble" Fill="#FFFFA300" />
<TextBlock x:Name="txtContent" Text="{ Binding ClientName }" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
[Estoy usando una cuadrícula aquí para que el bloque de texto se centre correctamente.]
La respuesta fue como Rich describió para usar un Viewbox.
Esta fue la configuración ganadora (para mí):
<Grid x:Name="gdBubble" Width="180" Height="95">
<Ellipse x:Name="elBubble" Fill="#FFFFA300" />
<controls:Viewbox Margin="10,10,10,10" VerticalAlignment="Stretch" Height="Auto">
<TextBlock x:Name="txtContent" FontSize="18" Text="{ Binding ClientName }" HorizontalAlignment="Center" VerticalAlignment="Center" />
</controls:Viewbox>
</Grid>
¿Has mirado en transformar ScaleTransform?
ib.
Ayer se hizo una pregunta similar sobre el tamaño del contenido automáticamente en relación con el tamaño de un contenedor. La respuesta en este caso es la misma: usar un Viewbox. Si coloca su TextBlock dentro del Viewbox, el TextBlock se redimensionará solo para usar el espacio que necesita, y el Viewbox manejará la extensión de este a las dimensiones del contenedor. Utilice el atributo de estiramiento para elegir uno de los cuatro métodos de estiramiento.
Echa un vistazo a este hilo de ayer:
Pruebe un Dockpanel lugar de una cuadrícula. El uso de LastChildFill = true debería proporcionarle el comportamiento que está buscando.