相关疑难解决方法(0)

WPF TreeView:如何设置带有圆角的选定项目,如在资源管理器中

WPF TreeView中的所选项目具有深蓝色背景和"尖锐"角.今天看起来有点过时了:

WPF选择具有或不具有焦点的TreeViewItem

我想改变背景,看起来像在Windows 7的资源管理器中(有/无焦点):

Explorer TreeViewItem已选中 选择没有焦点的Explorer TreeViewItem

我到目前为止所尝试的并没有删除原始的深蓝色背景,而是在它上面画了一个圆形边框,这样你就可以看到边缘和左边的深蓝色 - 丑陋.

在此输入图像描述

有趣的是,当我的版本没有焦点时,它看起来很不错:

在此输入图像描述

我想不要重新定义控件模板,如此处或此处所示.我想设置所需的最小属性,使所选项目在资源管理器中看起来像.

替代方案:我也很乐意将焦点选中的项目看起来像我现在所做的那样没有焦点.失去焦点时,颜色应从蓝色变为灰色.

这是我的代码:

<TreeView 
    x:Name="TreeView"
    ItemsSource="{Binding TopLevelNodes}" 
    VirtualizingStackPanel.IsVirtualizing="True"
    VirtualizingStackPanel.VirtualizationMode="Recycling">

    <TreeView.ItemContainerStyle>
        <Style TargetType="{x:Type TreeViewItem}">
            <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
            <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />

            <Style.Triggers>
                <Trigger Property="IsSelected" Value="True">
                    <Setter Property="BorderBrush" Value="#FF7DA2CE" />
                    <Setter Property="Background" Value="#FFCCE2FC" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </TreeView.ItemContainerStyle>

    <TreeView.Resources>
        <HierarchicalDataTemplate DataType="{x:Type viewmodels:ObjectBaseViewModel}" ItemsSource="{Binding Children}">
            <Border Name="ItemBorder" CornerRadius="2" Background="{Binding Background, RelativeSource={RelativeSource AncestorType=TreeViewItem}}"
                      BorderBrush="{Binding BorderBrush, RelativeSource={RelativeSource AncestorType=TreeViewItem}}" BorderThickness="1">
                <StackPanel Orientation="Horizontal" Margin="2">
                    <Image Name="icon" Source="/ExplorerTreeView/Images/folder.png"/>
                    <TextBlock Text="{Binding Name}"/> …
Run Code Online (Sandbox Code Playgroud)

wpf treeview xaml styles selecteditem

56
推荐指数
2
解决办法
5万
查看次数

如何使用某种颜色突出显示树视图所选项目?

我在WPF中有一个树视图.当我选择treeviewitem时,我想要一种不同的颜色.

c# wpf treeview xaml selecteditem

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

selecteditem ×2

treeview ×2

wpf ×2

xaml ×2

c# ×1

styles ×1