首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ListView SelectedItem交替背景色

ListView SelectedItem交替背景色
EN

Stack Overflow用户
提问于 2011-07-27 13:20:42
回答 2查看 1.3K关注 0票数 1

我在ListView上使用(3.5版本的新版本) AlternationIndex触发器来应用如下的交替背景颜色:

代码语言:javascript
复制
<ListView.ItemContainerStyle>
    <Style TargetType="{x:Type ListViewItem}">
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
        <Style.Triggers>
            <Trigger Property="ItemsControl.AlternationIndex" Value="0">
                <Setter Property="Background" Value="White" />
            </Trigger>
            <Trigger Property="ItemsControl.AlternationIndex" Value="1">
                <Setter Property="Background" Value="#300761AE" />
            </Trigger>
        </Style.Triggers>
    </Style>
</ListView.ItemContainerStyle>

这部分工作很好,ListView看起来就像我想要的那样。我唯一的问题是SelectedItem的背景颜色。对于我的列表,实际上不能选择项目,因为这在上下文中是没有意义的。我正在尝试寻找一种方法,使SelectedItem的背景颜色为nothing,这样父ListViewItem的颜色就会显现出来。透明不起作用,因为它本质上等同于白色,当我使用透明时,交替样式就消失了。它也不会让我将它设置为null。

我知道我需要更改SystemColors.HighlightBrushKey,但是我不知道如何设置绑定来找到父ListViewItem的背景颜色。这是一次尝试:

代码语言:javascript
复制
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListViewItem}}, Path=Background}" />

这有可能做到吗?

EN

Stack Overflow用户

发布于 2011-07-27 13:49:55

试一下这个

代码语言:javascript
复制
    <Style TargetType="ListViewItem">
        <Style.Resources>
            <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Green"/>
                <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="LightBlue"/>
        </Style.Resources>
    </Style>

http://imduff.wordpress.com/2008/03/01/change-highlight-color-when-an-item-in-a-listview-is-selected/

票数 -1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6839753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档