Sto creando un numero "n" di blocchi di testo all'interno di un pannello di stack a livello di codice. Ho bisogno di cambiare cambiare la dimensione del carattere (sia aumento e diminuzione della dimensione del carattere) di blocchi di testo 'n'. È possibile cambiare la dimensione del font di tutti i child del pannello stack in una singola istruzione? Se non è possibile come può essere risolto in modo efficiente?Come cambiare la dimensione del font di tutti i (n numero di) blocchi di testo all'interno del pannello dello stack a livello di programmazione?
risposta
Sì, è possibile fare riferimento allo snippet di codice riportato di seguito, dove "foobar" fa riferimento al nome del proprio stackpanel.
foreach (var children in foobar.Children)
{
(children as TextBlock).FontSize = 20;
}
stai chiedendo eccezioni nullRef con questo codice. – MetaFight
È possibile utilizzare gli stili per applicare un valore a una proprietà per tutti i TextBlock
s all'interno del StackPanel
.
Ci scusiamo per la risposta errata precedente.
Per qualche motivo nessuno dei due metodi che hai menzionato funziona su Windows Phone: 'TextBlock' non ha un metodo' SetFontSize() 'e prova a impostare' TextBlock.FontSize' nel pannello dello stack, nel modo in cui puoi farlo con WPF semplice, non funziona. –
@CosminPrund Stai utilizzando Silverlight in Windows Phone 7? O qualcos'altro? –
Ho fatto File -> Nuovo -> Progetto -> Windows Phone -> App per Windows Phone da Visual Studio 2012, a prescindere dal valore predefinito. –
È possibile applicare uno stile di markup:
<StackPanel.Resources>
<Style TargetType="TextBlock">
<Setter Property="FontSize" Value="20"/>
</Style>
</StackPanel.Resources>
Se si sta creando le TextBlocks pragmaticamente, non si può impostare il FontSize dal codice quando si sta creando loro? Potresti voler mostrare del codice, perché non è ovvio perché avresti questo problema. –