列表框项前景问题

时间:2009-03-03 07:02:18

标签: .net wpf silverlight listbox xbap

我遇到了一个XBAP(WPF浏览器应用程序)项目的问题:

这里有两个列表框:

  • 一个包含文字内容的简单列表
  • 第二个包含每个项目的扩展器:

alt text http://i44.tinypic.com/117bpj4.jpg

现在,当我点击第一个列表框中的项目(左侧)时,前景会变为白色,如果选择了其他项目,则会变回黑色。

对于第二个列表框(右侧)中的项目,当我单击该项目时,前景保持黑色。这是因为文本内容本身包含在Expander控件中:

alt text http://i39.tinypic.com/124vn6u.jpg

现在,如何使Expander控件前景色的行为类似于选择列表框项目/选择更改时的行为?是否有任何依赖属性可用于实现此目的?

注意:我希望第二个列表框(右)的行为与第一个(左)的前景色完全相似。

1 个答案:

答案 0 :(得分:5)

只需将Foreground="{TemplateBinding TextElement.Foreground}"添加到模板中的元素,就像这样

<DataTemplate DataType="{x:Type l:City}">
    <Expander 
        Header="Click to Expand" 
        Foreground="{TemplateBinding TextElement.Foreground}"
        >
        <TextBlock 
            Text="{Binding Name}" 
            Foreground="{TemplateBinding TextElement.Foreground}"
            />
    </Expander>
</DataTemplate>