替代文字 http://akashkava.com/blog/wp-content/uploads/2009/12/ListBoxItem-Selection-Problem.png
下面的代码,行为有点奇怪。
<ListBox SelectionMode="Multiple">
<StackPanel>
<TextBlock>Selection is Black</TextBlock>
</StackPanel>
<ListBoxItem>
<StackPanel>
<TextBlock>Selection is White</TextBlock>
</StackPanel>
</ListBoxItem>
</ListBox>
请注意,第一个选择保持黑色,这是因为 Item 不是它自己的 ItemContainer,但是在第二种情况下,Item 是它自己的 ItemContainer,因此样式可以正常工作。大多数时候,我们通过模板填充数据,并且每次我们的 Item 不是它自己的 ItemContainer 时,这就是 TextBlock 在前景色方面表现得很奇怪的原因。
重要提示:我正在寻找“为什么会发生这种情况”的答案,而不是如何解决它,我知道解决方法 TextElement.Foreground="{TemplateBinding Foreground}",但我想知道为什么会这样。