Estoy enfrentando un gran problema con Silverlight para lidiar con el diseño. Principalmente, no puedo encontrar una manera de predecir el tamaño ocupado por las cadenas antes de que realmente se dibujen. En iPhone, tenemos algunos métodos muy simples que nos permiten determinar el tamaño que ocupará una cadena en la pantalla en función del tamaño de la fuente, la opción de ajuste de texto y el ancho y/o alto disponibles. Pero con Silverlight, no puedo encontrar una forma de obtener resultados consistentes en mi aplicación.Silverlight: ¿Cómo predecir el tamaño de la cuerda?
Actualmente estoy usando ActuelHeight y ActualWidth de una instancia de TextBlock pero me da resultados aleatorios. Por ejemplo, utilizo el siguiente código ...
TextBlock proto = new TextBlock();
proto.Width = 456;
proto.TextWrapping = TextWrapping.Wrap;
proto.Text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
double h = proto.ActualHeight;
... h se establece en 66 píxeles! Como puede adivinar por sí mismo, no hay forma de que un texto tan largo pueda caber en un rectángulo de 456 píxeles de ancho y 66 píxeles de alto. Y se confirma cuando agrego el bloque de texto dentro de un lienzo, establezco su tamaño en {456; 66} y pruebo la aplicación: ¡el texto no cabe en absoluto en el bloque de texto!
¿Puede alguien explicarme dónde radica el problema y señalarme una forma consistente (y confiable) de medir los tamaños de las cuerdas?
Gracias por adelantado,
Eric.
Cuando se establece el desplazamiento de auto, usted será capaz de ver todo el texto desplazándose, así que ¿por qué quiere saber el tamaño de pixeles? –