2015-05-14 67 views
0

我有一個堆棧面板,它在運行時動態添加了許多文本塊。什麼是最好的方式來改變文字塊的字體顏色(紅色),同時確保所有其他文字保留爲(或返回)默認白色。如何遍歷堆棧面板中的所有文本塊

我已經有了改變顏色的ontapped處理程序,但是當我然後點擊不同/第二個文本塊時,問題就出現了 - 因爲最初的一個不會變回白色。 我想我找的線沿線的東西:

foreach (TextBlock tbl in MyStackPanel) 
    { 
     // change all text to white 
    } 

     // Get the tapped one and change it to red 

但是,你不能通過StackPanel的兒童迭代,因爲編譯器不會讓你。有一個更好的方法嗎?

+0

它們都是'StackPanel'的直接子代還是嵌套在其他控件中? – dkozl

+0

直接子女 – Ricardinho

+3

你應該使用綁定爲了改變你的TextBoxes顏色 –

回答

4

有一個Children屬性,你可以遍歷。

foreach (var tb in MyStackPanel.Children.OfType<TextBlock>()) 
    tb.Foreground = Brushes.White; 
+0

完美!那樣做了。謝謝 – Ricardinho

相關問題