Sto affrontando un sacco di problemi con Silverlight come affrontare il layout. Soprattutto, non riesco a trovare un modo per prevedere la dimensione occupata dalle stringhe prima che vengano effettivamente disegnate. Su iPhone, abbiamo alcuni metodi molto semplici che ci permettono di determinare le dimensioni che una stringa occuperà sullo schermo in base alle dimensioni del carattere, all'opzione di ritorno a capo e alla larghezza e/o altezza disponibili. Ma con Silverlight, non riesco a trovare un modo per avere risultati coerenti attraverso la mia app.Silverlight: come prevedere la dimensione della stringa?
Attualmente sto usando l'istanza ActuelHeight e ActualWidth di TextBlock ma mi dà risultati casuali. Ad esempio, io uso il seguente codice ...
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 è impostato su 66 pixel! Come puoi intuire da solo, non c'è modo che un testo così lungo possa adattarsi a un rettangolo di 456 pixel di larghezza e 66 di altezza. E viene confermato quando aggiungo il blocco di testo all'interno di una tela, ne imposto le dimensioni a {456; 66} e provo l'app: il testo non si adatta affatto al blocco di testo!
Qualcuno può spiegarmi dove si trova il problema e indicarmi un modo coerente (e affidabile) per misurare le dimensioni delle stringhe?
Grazie anticipatamente,
Eric.
Quando si imposta lo scorrimento su auto, si sarà in grado di visualizzare tutto il testo scorrendo, quindi perché vuoi conoscere la dimensione in pixel? –