我正在用C#/ XAML开发Windows Phone 8.1应用程序。

我有一个listview,其背景设置为白色。结果,您无法看到列表视图项,因为它们的前景也是白色的。我想将其更改为另一种颜色。但是,当选中该项目时,我想将前景色改回白色,因为选中该项目后,该项目的背景会更改颜色(黄色),从而使用户可以看到白色。

我已将代码上传到PasteBin:

MainPage.xaml(实际页面):http://pastebin.com/R9DG9D2J

App.xaml:http://pastebin.com/21qQxHge

在App.xaml中,我覆盖了ListViewItemSelectedBackgroundThemeBrush笔刷,因此当选择一个项目时,它具有黄色背景,而不是默认的蓝色背景。但是,我无法更改该项目的前景色。我不想像我那样在ListViewItem的DataTemplate内的文本块中对前景色进行硬编码,所以在选中该项目时,该色不会变回白色。

我该怎么办?

最佳答案

尝试使用样式触发器设置ListViewItem的前景色,检查IsSelected条件是否为true,然后将Foreground属性更改为选定项目时所需的任何颜色,方法是仅更改选定的ListView Item的前景色

<Style TargetType="{x:Type ListViewItem}">
    <Style.Triggers>
        <Trigger Property="ListViewItem.IsSelected" Value="True">
            <Setter Property="Foreground" Value="Red"/>
        </Trigger>
    </Style.Triggers>
</Style>

10-08 07:40