Telerik控件 TreeListView

修改其中样式

1、添加TreeListView控件

        <telerik:RadTreeView x:Name="ObjecTreeView" Padding="0,5,0.5,5" Grid.Row="1" BorderThickness="0" ScrollViewer.HorizontalScrollBarVisibility="Disabled"
telerik:StyleManager.Theme="Windows8" SelectionMode="Single" Background="White" SelectionChanged="ObjecTreeView_OnSelectionChanged"
SelectedValuePath="DisplayName" AutoScrollToSelectedItem="True" IsExpandOnSingleClickEnabled="True" FocusVisualStyle="{x:Null}" ><telerik:RadTreeView.ItemTemplateSelector><styleSelector:ObjectTreeTemplateSelector ItemTemplate="{StaticResource ObjectItemTemplate}"
TreeItemTemplate="{StaticResource ObjectTreeTemplate}"></styleSelector:ObjectTreeTemplateSelector></telerik:RadTreeView.ItemTemplateSelector></telerik:RadTreeView>

View Code

通过模板选择器,选择相应的模板

2、模板

1)级联模板

    <!--对象树母模板--><HierarchicalDataTemplate x:Key="ObjectTreeTemplate"
ItemsSource="{Binding ObjectTypeModels}"
ItemTemplate="{StaticResource ObjectItemTemplate}" ItemContainerStyle="{StaticResource RadTreeViewItemStyle1}"><StackPanel Orientation="Horizontal"><Image Source="..\..\Images\操作图标\内容\文件夹.png" VerticalAlignment="Center" Height="14" Margin="0,0,5,0"/><CheckBox x:Name="MotherCheckBox" Visibility="{Binding CheckBoxVisibility,Mode=TwoWay}"
IsChecked="{Binding IsChecked,Mode=TwoWay}" Click="ButtonBase_OnClick"></CheckBox><TextBlock Text="{Binding DisplayName,Mode=TwoWay}" Margin="5,0,0,0" /></StackPanel></HierarchicalDataTemplate>

View Code

2)子模板

    <!--对象树子模板--><DataTemplate x:Key="ObjectItemTemplate"><ContentControl Content="{Binding}"><ContentControl.Style><Style TargetType="ContentControl"><Setter Property="ContentTemplate" Value="{StaticResource ObjectItemTemplateNoSelect}"></Setter><Style.Triggers><DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type telerik:RadTreeViewItem}}, Path=IsSelected}" Value="true"><Setter Property="ContentTemplate" Value="{StaticResource ObjectItemTemplateSelected}"></Setter></DataTrigger></Style.Triggers></Style></ContentControl.Style></ContentControl></DataTemplate>

View Code

选中样式

    <!--对象树选中状态子模板--><DataTemplate x:Key="ObjectItemTemplateSelected"><StackPanel Orientation="Horizontal"><Image Source="..\..\Images\操作图标\内容\文件_Click.png" VerticalAlignment="Center" Height="14" Margin="0,0,5,0"/><CheckBox x:Name="ChildCheckBox" Visibility="{Binding CheckBoxVisibility,Mode=TwoWay}" IsChecked="{Binding IsChecked,Mode=TwoWay}"></CheckBox><TextBlock Text="{Binding DisplayName,Mode=TwoWay}" Foreground="#FFB83838" FontWeight="Black" Margin="5,0,0,0"/></StackPanel></DataTemplate>

View Code

未选中样式

    <!--对象树未选中状态子模板--><DataTemplate x:Key="ObjectItemTemplateNoSelect"><StackPanel Orientation="Horizontal"><Image Source="..\..\Images\操作图标\内容\文件.png" VerticalAlignment="Center" Height="14" Margin="0,0,5,0"/><CheckBox x:Name="ChildCheckBox" Visibility="{Binding CheckBoxVisibility,Mode=TwoWay}" IsChecked="{Binding IsChecked,Mode=TwoWay}"></CheckBox><TextBlock Text="{Binding DisplayName,Mode=TwoWay}" Margin="5,0,0,0" /></StackPanel></DataTemplate>

View Code

2、TreeListView的样式,设置子项的容器、焦点样式等。

    <!--模板的样式--><Style x:Key="RadTreeViewItemStyle1" TargetType="{x:Type telerik:RadTreeViewItem}"><Setter Property="FocusVisualStyle"><Setter.Value><Style><Setter Property="Control.Template"><Setter.Value><ControlTemplate><Rectangle Margin="0" Stroke="Transparent" StrokeThickness="0"/></ControlTemplate></Setter.Value></Setter></Style></Setter.Value></Setter><Setter Property="HorizontalContentAlignment" Value="Left"/><Setter Property="VerticalContentAlignment" Value="Center"/><Setter Property="BorderThickness" Value="1"/><Setter Property="Padding" Value="1,0,5,0"/><Setter Property="IsDropAllowed" Value="True"/><Setter Property="IsEnabled" Value="True"/><Setter Property="MinHeight" Value="24"/><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="{x:Type telerik:RadTreeViewItem}"><Grid x:Name="RootElement"><Grid.RowDefinitions><RowDefinition Height="Auto"/><RowDefinition/></Grid.RowDefinitions><Grid x:Name="HeaderRow" Background="Transparent" MinHeight="{TemplateBinding MinHeight}"><Grid.ColumnDefinitions><ColumnDefinition Width="Auto"/><ColumnDefinition Width="Auto"/><ColumnDefinition Width="Auto"/><ColumnDefinition Width="Auto"/><ColumnDefinition Width="Auto"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions><Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.ColumnSpan="6" Grid.Column="2" CornerRadius="2"/><Border x:Name="MouseOverVisual" BorderThickness="0" Grid.ColumnSpan="6" Grid.Column="2" CornerRadius="1" Opacity="0"><Border BorderBrush="White" BorderThickness="0" CornerRadius="0" Background="Transparent"></Border></Border><Border x:Name="SelectionUnfocusedVisual" BorderThickness="0" Grid.ColumnSpan="6" Grid.Column="2" CornerRadius="1" Visibility="Collapsed"><Border BorderBrush="Transparent" BorderThickness="0" CornerRadius="0" Background="LightGray"></Border></Border><Border x:Name="SelectionVisual" BorderThickness="0" Grid.ColumnSpan="6" Grid.Column="2" CornerRadius="1" Visibility="Collapsed"><Border BorderBrush="Transparent" BorderThickness="0" CornerRadius="0" Background="LightGray"></Border></Border><StackPanel x:Name="IndentContainer" Orientation="Horizontal"><Rectangle x:Name="IndentFirstVerticalLine" Stroke="#FFCCCCCC" Visibility="Collapsed" VerticalAlignment="Top" Width="1"/></StackPanel><Grid x:Name="ListRootContainer" Grid.Column="1" HorizontalAlignment="Center" MinWidth="20"><Rectangle x:Name="HorizontalLine" HorizontalAlignment="Right" Height="1" Stroke="#FFCCCCCC" VerticalAlignment="Center"/><Rectangle x:Name="VerticalLine" HorizontalAlignment="Center" Stroke="#FFCCCCCC" VerticalAlignment="Top" Width="1"/><ToggleButton x:Name="Expander" Background="{TemplateBinding Background}" IsTabStop="False"/><Grid x:Name="LoadingVisual" HorizontalAlignment="Center" RenderTransformOrigin="0.5,0.5" Visibility="Collapsed" VerticalAlignment="Center"><Grid.RenderTransform><TransformGroup><RotateTransform Angle="0" CenterY="0.5" CenterX="0.5"/></TransformGroup></Grid.RenderTransform><Path Data="M1,0A1,1,90,1,1,0,-1" Height="10" StrokeStartLineCap="Round" Stretch="Fill" Stroke="{TemplateBinding Foreground}" StrokeThickness="1" Width="10"/><Path Data="M0,-1.1L0.1,-1 0,-0.9" Fill="{TemplateBinding Foreground}" HorizontalAlignment="Left" Height="4" Margin="5,-1.5,0,0" Stretch="Fill" StrokeThickness="1" VerticalAlignment="Top" Width="4"/></Grid></Grid><CheckBox x:Name="CheckBoxElement" Grid.Column="2" IsTabStop="False" Margin="5,0,0,0" Visibility="Collapsed" VerticalAlignment="Center"><telerik:StyleManager.Theme><telerik:Office_BlackTheme/></telerik:StyleManager.Theme></CheckBox><RadioButton x:Name="RadioButtonElement" Grid.Column="2" IsTabStop="False" Margin="5,0,0,0" Visibility="Collapsed" VerticalAlignment="Center"><telerik:StyleManager.Theme><telerik:Office_BlackTheme/></telerik:StyleManager.Theme></RadioButton><Image x:Name="Image" Grid.Column="3" HorizontalAlignment="Center" MaxWidth="16" MaxHeight="16" Margin="2" VerticalAlignment="Center"/><Rectangle x:Name="FocusVisual" Grid.ColumnSpan="6" Grid.Column="2" IsHitTestVisible="False" RadiusY="3" RadiusX="3" Stroke="Black" StrokeThickness="0" StrokeDashArray="1 2" Visibility="Collapsed"/><Grid Grid.ColumnSpan="2" Grid.Column="4"><ContentPresenter x:Name="Header" ContentTemplate="{TemplateBinding HeaderTemplate}" Content="{TemplateBinding Header}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/><ContentPresenter x:Name="EditHeaderElement" ContentTemplate="{TemplateBinding HeaderEditTemplate}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" Visibility="Collapsed" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/></Grid></Grid><ItemsPresenter x:Name="ItemsHost" Grid.Row="1" Visibility="Collapsed"/></Grid><ControlTemplate.Triggers><Trigger Property="IsInEditMode" Value="True"><Setter Property="Visibility" TargetName="Header" Value="Collapsed"/><Setter Property="Visibility" TargetName="EditHeaderElement" Value="Visible"/></Trigger><Trigger Property="IsSelected" Value="True"><Setter Property="Visibility" TargetName="SelectionVisual" Value="Visible"/></Trigger><Trigger Property="IsFocused" Value="True"><Setter Property="Visibility" TargetName="FocusVisual" Value="Visible"/></Trigger><MultiTrigger><MultiTrigger.Conditions><Condition Property="IsSelected" Value="True"/><Condition Property="IsSelectionActive" Value="False"/></MultiTrigger.Conditions><Setter Property="Opacity" TargetName="SelectionVisual" Value="0"/><Setter Property="Visibility" TargetName="SelectionUnfocusedVisual" Value="Visible"/></MultiTrigger><Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" TargetName="Header" Value="0.5"/></Trigger><Trigger Property="IsExpanded" Value="True"><Setter Property="Visibility" TargetName="ItemsHost" Value="Visible"/></Trigger><Trigger Property="IsLoadingOnDemand" Value="True"><Trigger.EnterActions><BeginStoryboard x:Name="LoadingVisualTransform"><Storyboard><DoubleAnimation Duration="0:0:1" From="0" RepeatBehavior="Forever" To="359" Storyboard.TargetProperty="Angle" Storyboard.TargetName="LoadingVisualAngleTransform"/></Storyboard></BeginStoryboard></Trigger.EnterActions><Trigger.ExitActions><StopStoryboard BeginStoryboardName="LoadingVisualTransform"/></Trigger.ExitActions><Setter Property="Visibility" TargetName="LoadingVisual" Value="Visible"/><Setter Property="Visibility" TargetName="Expander" Value="Collapsed"/></Trigger><Trigger Property="IsDragOver" Value="True"><Setter Property="Opacity" TargetName="MouseOverVisual" Value="1"/></Trigger><Trigger Property="IsMouseOver" SourceName="HeaderRow" Value="True"><Setter Property="Opacity" TargetName="MouseOverVisual" Value="1"/></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter><Setter Property="ItemsPanel"><Setter.Value><ItemsPanelTemplate><telerik:TreeViewPanel IsItemsHost="True" IsVisualCacheEnabled="False" VerticalAlignment="Bottom"/></ItemsPanelTemplate></Setter.Value></Setter></Style>

View Code

转载于:https://www.cnblogs.com/kybs0/p/5816183.html

WPF Telerik TreeListView样式设计相关推荐

  1. WPF XAML 资源样式模板属性存放位置

    WPF XAML 资源样式模板属性存放位置 原文:WPF XAML 资源样式模板属性存放位置 WPF的XAML 资源申明 类似HTML. 整体来说分3种 1.行类资源样式属性 1.1 行内属性 < ...

  2. WPF快速入门系列(6)——WPF资源和样式

    WPF快速入门系列(6)--WPF资源和样式 一.引言 WPF资源系统可以用来保存一些公有对象和样式,从而实现重用这些对象和样式的作用.而WPF样式是重用元素的格式的重要手段,可以理解样式就如CSS一 ...

  3. WPF自定义控件与样式(8)-ComboBox与自定义多选控件MultComboBox

    一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: 下拉选 ...

  4. 【转】WPF自定义控件与样式(3)-TextBox RichTextBox PasswordBox样式、水印、Label标签、功能扩展...

    一.前言.预览 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等. 本文主要是对文本输入控件进行样式开发,及相关扩展功能开发,主要内容包括: 基本文 ...

  5. WPF自定义控件与样式(1)-矢量字体图标(iconfont)

    原文:WPF自定义控件与样式(1)-矢量字体图标(iconfont) 一.图标字体 图标字体在网页开发上运用非常广泛,具体可以网络搜索了解,网页上的运用有很多例子,如Bootstrap.但在C/S程序 ...

  6. WPF自定义控件与样式(5)-Calendar/DatePicker日期控件自定义样式及扩展

    原文:WPF自定义控件与样式(5)-Calendar/DatePicker日期控件自定义样式及扩展 一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐 ...

  7. WPF自定义控件与样式(4)-CheckBox/RadioButton自定义样式

    原文:WPF自定义控件与样式(4)-CheckBox/RadioButton自定义样式 一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等, ...

  8. WPF编程学习 —— 样式

    本文目录 1.引言 2.怎样使用样式? 3.内联样式 4.已命名样式 5.元素类型样式 6.编程控制样式 7.触发器 1.引言 样式(Style),主要是用来让元素或内容呈现一定外观的属性.WPF中的 ...

  9. wpf控件样式管理示意图

    原文:wpf控件样式管理示意图

最新文章

  1. SAP WM 2-Step Picking的TO单据特殊的地方
  2. Bullet 3D 物理引擎 简析(2)
  3. 若使用numba.cuda.jit加速pytorch训练代码会怎样
  4. shell脚本中向hive动态分区插入数据
  5. 作者:李冰(1989-),女,中国电子技术标准化研究院工程师。
  6. JS中的==和===的区别
  7. 走进软件测试面试(真题分析)
  8. RTC硬件时钟设置修改【转】
  9. linux 之学习路线
  10. ios mysql工具_iOS数据库可视化工具--直接在iPhone操作你的数据库
  11. 群晖系统服务器设置,私人云搭建 篇二:群晖系统搭建和初步设置的不正确指北...
  12. iOS 图片遮罩动画,图片逐渐显示
  13. QUESTION: 由于文件 无法被用户‘_apt‘访问,已脱离沙盒并提权为根用户来进行下载。 - pkgAcquire::Run (13: 权限不够)
  14. 首出集团:超级推荐引爆流量,6步店铺跨越到第六层级
  15. mysql capi函数详解_CAPI函数描述(G-N)
  16. Linux搜索查找命令【详细整理】
  17. 卡马克快速平方根(平方根倒数)算法(转)
  18. datagridview 单击某个单元格选中一行
  19. androID程序!BAT大厂面试基础题集合,附带学习经验
  20. SQL Server新增Contained Database功能

热门文章

  1. how to solve undefined reference in igllib
  2. 2D Fast Marching Computations
  3. python3.7语法错误_Tweepy不会安装在Python3.7上;显示“语法错误”
  4. 水准网测量平差matlab_1K417012场区控制测量
  5. python3生成随机数_python3实现随机数
  6. 设计模式之十一:创建模式(Builder Pattern)
  7. Safari 快捷键
  8. Cocos2dx 之 ButtonSprite
  9. linux脚本解密,给shell脚本加密和解密的shell脚本
  10. 开启Golang编程第一章