更改ListView中文本的颜色

时间:2013-06-02 01:51:33

标签: c# xaml listview winrt-xaml

我的xaml中有一个ListView有3个项目:

<ListView Height="768" Width="220" Background="Silver" >
    <x:String>Item 1</x:String>
    <x:String>Item 2</x:String>
    <x:String>Item 3</x:String>
</ListView>

如何更改行中文本的颜色/文字大小?

另外作为奖励问题,如何才能获得该行的背景和文本颜色,然后选择一个项目?

1 个答案:

答案 0 :(得分:0)

解决方法非常简单:

如果要为所有项目设置相同的颜色,则以下方式适用:

<ListView Height="768" Width="220" Background="Silver">

    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="Foreground" Value="Blue"></Setter>
        </Style>
    </ListView.ItemContainerStyle>

    <system:String>Item 1</system:String>
    <system:String>Item 2</system:String>
    <system:String>Item 3</system:String>
</ListView>

为了使特定项具有唯一的颜色,您应该为ListView本身放置AlternationCount属性:

<ListView AlternationCount="50" Height="768" Width="220" Background="Silver">

ItemContainerStyle内的触发器。这里的Trigger Value属性是项目的索引:

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Style.Triggers>
            <Trigger Property="ItemsControl.AlternationIndex" Value="0">
                <Setter Property="Foreground" Value="Red"></Setter>
            </Trigger>
            <Trigger Property="ItemsControl.AlternationIndex" Value="1">
                <Setter Property="Foreground" Value="Blue"></Setter>
            </Trigger>
            <Trigger Property="ItemsControl.AlternationIndex" Value="2">
                <Setter Property="Foreground" Value="Black"></Setter>
            </Trigger>
        </Style.Triggers>
    </Style> 
</ListView.ItemContainerStyle>

此时,很容易弄清楚如何操纵Foreground以外的属性。