WPF中listview被选中行的背景色改变

时间:2022-07-29 14:50:36
我的代码如下:

<ListView Height="525" Name="listview" Width="1180">
<ListView.View>
<GridView>
<GridViewColumn Header="AA" DisplayMemberBinding="{Binding Path=aa}"></GridViewColumn>
<GridViewColumn Header="BB" DisplayMemberBinding="{Binding Path=bb}"></GridViewColumn>
<GridViewColumn Header="CC" DisplayMemberBinding="{Binding Path=cc}"></GridViewColumn>
</GridView>
</ListView.View>
</ListView>

App.xaml的Resources代码如下
<Application.Resources>
        <Style TargetType="{x:Type ListViewItem}">
            <Style.Triggers>
                <Trigger Property="IsSelected" Value="True">
                    <Setter Property="Background" Value="Blue"/>
                    <Setter Property="Foreground" Value="White"/>
                </Trigger>
            </Style.Triggers>
        </Style>
</Application.Resources>

当listview的某行被选中时(没有失去焦点时),字体为白色,背景色为蓝色;但当失去焦点后,颜色就变浅了。

我希望失去焦点后,被选中行的还是字体为白色,背景色为蓝色,所以用了触发器。

但现在发现行被选中后,焦点失去时
<Setter Property="Foreground" Value="White"/>这个效果字体颜色确为白色
但<Setter Property="Background" Value="Blue"/>这个没改变背景颜色。

请问是什么回事呢了???麻烦大家帮帮忙。


另外还有个关于listview行获得焦点的问题,麻烦大家也帮忙看看,谢谢了,地址如下:
http://topic.csdn.net/u/20111122/16/062b3e52-92c6-4926-8c91-a70b8e419643.html?30280

8 个解决方案

#1


谁帮帮忙?

#2


谁可以帮帮忙啊??

#3


你没有把Style绑到listview

#4


引用 3 楼 denqh 的回复:
你没有把Style绑到listview


绑定了,不是说了字体颜色变了我设定的吗?但是背景色没变

#5


你绑在哪?你上面的代码我怎么没有看到?Style key都没有,你绑的是什么?

#6


引用 5 楼 denqh 的回复:
你绑在哪?你上面的代码我怎么没有看到?Style key都没有,你绑的是什么?


我不太清楚你说的那种绑定是什么,我现在是listview失去焦点
<Style TargetType="{x:Type ListViewItem}">
   <Style.Triggers>
   <Trigger Property="IsSelected" Value="True">
   <Setter Property="Background" Value="Blue"/>//这个没效果
   <Setter Property="Foreground" Value="White"/>//这个有效果
   </Trigger>
   </Style.Triggers>
   </Style>

#7


listview里面的行被选中时是蓝底白字的,但当失去焦点后,颜色就变为谈了

我是希望某行被选中后在失去焦点后,还能清楚看到哪行被选则了


但现在得代码是发现字体颜色改变了,但背景底色改变不了,想知道原因和解决办法

#8


现在发现我的代码在Win7上运行可以修改到被选中行的字体、背景颜色


但在XP上却只有字体颜色改变,背景色却改变不了,请问是怎么回事啊???

#1


谁帮帮忙?

#2


谁可以帮帮忙啊??

#3


你没有把Style绑到listview

#4


引用 3 楼 denqh 的回复:
你没有把Style绑到listview


绑定了,不是说了字体颜色变了我设定的吗?但是背景色没变

#5


你绑在哪?你上面的代码我怎么没有看到?Style key都没有,你绑的是什么?

#6


引用 5 楼 denqh 的回复:
你绑在哪?你上面的代码我怎么没有看到?Style key都没有,你绑的是什么?


我不太清楚你说的那种绑定是什么,我现在是listview失去焦点
<Style TargetType="{x:Type ListViewItem}">
   <Style.Triggers>
   <Trigger Property="IsSelected" Value="True">
   <Setter Property="Background" Value="Blue"/>//这个没效果
   <Setter Property="Foreground" Value="White"/>//这个有效果
   </Trigger>
   </Style.Triggers>
   </Style>

#7


listview里面的行被选中时是蓝底白字的,但当失去焦点后,颜色就变为谈了

我是希望某行被选中后在失去焦点后,还能清楚看到哪行被选则了


但现在得代码是发现字体颜色改变了,但背景底色改变不了,想知道原因和解决办法

#8


现在发现我的代码在Win7上运行可以修改到被选中行的字体、背景颜色


但在XP上却只有字体颜色改变,背景色却改变不了,请问是怎么回事啊???