在XAML中更改ListViewItem的前景色

3
我正在用C#/XAML开发Windows Phone 8.1应用程序。
我有一个列表视图,其背景色设置为白色。结果是,你看不到列表项,因为它们的前景色也是白色。我想将其更改为另一种颜色。然而,当选择该项目时,我想将前景色更改回白色,因为当项目被选择时,该项目的背景色(黄色)会更改,从而使用户可以看到白色。
我已经将代码上传到PasteBin:
MainPage.xaml(实际页面):http://pastebin.com/R9DG9D2J App.xaml:http://pastebin.com/21qQxHge 在App.xaml中,我覆盖了ListViewItemSelectedBackgroundThemeBrush画刷,这样当选择一个项目时,它具有黄色背景而不是默认的蓝色背景。然而,我无法更改项目的前景色。我不想在ListViewItem的DataTemplate中硬编码前景色,因为如果我这样做,那么当选择该项时,颜色不会更改回白色。
我该怎么做?

在你的项模板中,将元素的前景绑定到TemplatedParent前景。这样,您可以在包含控件中设置它 - 您的模板颜色仍然是独立的。这是你所需要的吗? - kidshaw
你不想使用ColorAnimation代替ObjectAnimation吗? - Sean Airey
1个回答

0
尝试使用样式触发器设置ListViewItem的前景色,检查IsSelected条件是否为真,然后在项目被选中时将Foreground属性更改为所需的颜色,这样只有选定的ListView项的前景色会更改。
<Style TargetType="{x:Type ListViewItem}">
    <Style.Triggers>
        <Trigger Property="ListViewItem.IsSelected" Value="True">
            <Setter Property="Foreground" Value="Red"/>
        </Trigger>
    </Style.Triggers>
</Style>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接