2013-03-04 13 views
5

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?

+0

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. –

risposta

4

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; 
     } 
+2

stai chiedendo eccezioni nullRef con questo codice. – MetaFight

1

È 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.

+0

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. –

+0

@CosminPrund Stai utilizzando Silverlight in Windows Phone 7? O qualcos'altro? –

+0

Ho fatto File -> Nuovo -> Progetto -> Windows Phone -> App per Windows Phone da Visual Studio 2012, a prescindere dal valore predefinito. –

8

È possibile applicare uno stile di markup:

<StackPanel.Resources> 
<Style TargetType="TextBlock"> 
    <Setter Property="FontSize" Value="20"/> 
</Style> 
</StackPanel.Resources>