zoukankan      html  css  js  c++  java
  • WPF中ListView如何改变选中条背景颜色

    先上图

    解决方法:

    <ListView ...>
        <ListView.ItemContainerStyle>
            <Style TargetType="{x:Type ListViewItem}">
                <Style.Resources>
                    <!-- Foreground for Selected ListViewItem -->
                    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" 
                                     Color="Black"/>
                    <!-- Background for Selected ListViewItem -->
                    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
                                     Color="Transparent"/>
                </Style.Resources>
            </Style>
        </ListView.ItemContainerStyle>
        ...
    </ListView>

    解决问题

    在CSDN上找到另外一种方法:

    用StyleSnooper看一下默认的Style,改一下就可以了。
    
    三种颜色 IsMouseOver = Blue
            Select & Focus = Red
            Select & UnFocus = Yellow

    大家也可以尝试下:

    <Window x:Class="WpfApplication1.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="300" Width="300">
        <Window.Resources>
            <Style TargetType="ListViewItem">
                <Style.Resources>
                    <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Yellow"/>
                    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color=" Red"/>
                </Style.Resources>
                <Setter Property="Panel.Background" Value="#00FFFFFF"/>
                <Setter Property="Control.HorizontalContentAlignment">
                    <Setter.Value>
                        <Binding Path="HorizontalContentAlignment" 
                                 RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=ItemsControl, AncestorLevel=1}" />
                    </Setter.Value>
                </Setter>
                <Setter Property="Control.VerticalContentAlignment">
                    <Setter.Value>
                        <Binding Path="VerticalContentAlignment" 
                                 RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=ItemsControl, AncestorLevel=1}" />
                    </Setter.Value>
                </Setter>
                <Setter Property="Control.Padding" Value="2,0,0,0"/>
                <Setter Property="Control.Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="ListViewItem">
                            <Border BorderThickness="{TemplateBinding Border.BorderThickness}" 
                                    Padding="{TemplateBinding Control.Padding}" 
                                    BorderBrush="{TemplateBinding Border.BorderBrush}" 
                                    Background="{TemplateBinding Panel.Background}" 
                                    Name="Bd" 
                                    SnapsToDevicePixels="True">
                                <ContentPresenter 
                                    Content="{TemplateBinding ContentControl.Content}" 
                                    ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}" 
                                    ContentStringFormat="{TemplateBinding ContentControl.ContentStringFormat}" 
                                    HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}" 
                                    VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}" 
                                    SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}" />
                            </Border>
                            <ControlTemplate.Triggers>
                                <Trigger Property="Selector.IsSelected" Value="True">
                                    <Setter Property="Panel.Background" TargetName="Bd">
                                        <Setter.Value>
                                            <DynamicResource ResourceKey="{x:Static SystemColors.HighlightBrushKey}" />
                                        </Setter.Value>
                                    </Setter>
                                    <Setter Property="TextElement.Foreground">
                                        <Setter.Value>
                                            <DynamicResource ResourceKey="{x:Static SystemColors.HighlightTextBrushKey}" />
                                        </Setter.Value>
                                    </Setter>
                                </Trigger>
                                <MultiTrigger>
                                    <MultiTrigger.Conditions>
                                        <Condition Property="Selector.IsSelected" Value="True"/>
                                        <Condition Property="Selector.IsSelectionActive" Value="False"/>
                                    </MultiTrigger.Conditions>
                                    <Setter Property="Panel.Background" TargetName="Bd">
                                        <Setter.Value>
                                            <DynamicResource ResourceKey="{x:Static SystemColors.ControlBrushKey}" />
                                        </Setter.Value>
                                    </Setter>
                                    <Setter Property="TextElement.Foreground">
                                        <Setter.Value>
                                            <DynamicResource ResourceKey="{x:Static SystemColors.ControlTextBrushKey}" />
                                        </Setter.Value>
                                    </Setter>
                                </MultiTrigger>
                                <Trigger Property="UIElement.IsEnabled" Value="False">
                                    <Setter Property="TextElement.Foreground">
                                        <Setter.Value>
                                            <DynamicResource ResourceKey="{x:Static SystemColors.GrayTextBrushKey}" />
                                        </Setter.Value>
                                    </Setter>
                                </Trigger>
                                <Trigger Property="UIElement.IsMouseOver" Value="True">
                                    <Setter Property="Panel.Background" TargetName="Bd" Value="Blue">
                                    </Setter>
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </Window.Resources>
        <Grid>
            <ListView Margin="48,22,110,0" Name="listView1" Height="100" VerticalAlignment="Top">
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="12"/>
                        <GridViewColumn Header="12"/>
                        <GridViewColumn Header="12"/>
                    </GridView>
                </ListView.View>
                <ListViewItem>123</ListViewItem>
                <ListViewItem>123</ListViewItem>
                <ListViewItem>123</ListViewItem>
            </ListView>
            <TextBox Height="23" Margin="94,0,64,67" Name="textBox1" VerticalAlignment="Bottom" />
        </Grid>
    </Window>

    var isLogined = false; var cb_blogId = 69072; var cb_entryId = 3335531; var cb_blogApp = currentBlogApp; var cb_blogUserGuid = "c846af3f-b66b-de11-9510-001cf0cd104b"; var cb_entryCreatedDate = '2013/9/23 18:50:00'; var enableGoogleAd = true; var googletag = googletag || {}; googletag.cmd = googletag.cmd || [];

  • 相关阅读:
    flash背景透明、置底、禁止放大 右键菜单
    SQL 命令
    php无刷新翻页,单独的一个文件加上一个JS即可搞定
    php jquery ajax无刷新评论 无刷新翻页,字数统计 绝对可以用
    input点击隐藏显示层
    jquery延迟加载图片
    用Javascript读取CheckBox数组的值
    链表结构_C语言实现
    struts2_自定义错误提示
    struts2_自定义对象设置
  • 原文地址:https://www.cnblogs.com/joean/p/4847685.html
Copyright © 2011-2022 走看看