alt text http://akashkava.com/blog/wp-content/uploads/2009/12/ListBoxItem-Selection-Problem.png列表框前景色爲問題選定的項目沒有ItemContainer
下面的代碼,行爲有些奇怪。
<ListBox SelectionMode="Multiple">
<StackPanel>
<TextBlock>Selection is Black</TextBlock>
</StackPanel>
<ListBoxItem>
<StackPanel>
<TextBlock>Selection is White</TextBlock>
</StackPanel>
</ListBoxItem>
</ListBox>
注意,第一個選擇停留在黑色,那是因爲項目不是自己的ItemContainer,但是在第二種情況項目是它自己的ItemContainer所以風格正常工作。大多數時候我們通過模板填充數據,每次我們的Item不是它自己的ItemContainer,這就是爲什麼TextBlock在前景色方面表現奇怪。
重要提示:我在尋找「爲什麼發生這種情況」的答案,而不是如何解決它,我知道解決方法TextElement.Foreground =「{TemplateBinding Foreground}」,但我想知道爲什麼發生這種情況。
感謝您的答案,你能告訴我在哪裏以及如何看到這個邏輯樹?你用哪個工具找出這個問題?但我懷疑這是這種情況,因爲「樣式」和模板應該適用於正確的可視化樹。 – 2009-12-09 19:32:50
該工具是鼴鼠:http://karlshifflett.wordpress.com/mole-for-visual-studio/ – Anvaka 2009-12-09 20:57:06
感謝您的回答,我詳細閱讀,DP實際上遵循邏輯父母,然後視覺..這當然是一個問題在項目控制的情況下,我向微軟報告,但他們只會說「由設計解決」,但它只是意味着我必須重寫很多庫代碼才能完成這項工作。 – 2009-12-11 07:59:28