zoukankan
html css js c++ java
继续聊WPF——自定义滚动条
关键点:Track控件没有默认模板,它包括三个部分
DecreaseRepeatButton——这是一个RepeatButton即滑块左(上)的部分;
IncreaseRepeatButton——同上,即滑块右(下)部分;
Thumb——很明显了,这是拖动的滑块,请参考前面的文章。
<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> <ControlTemplate x:Key="myThumb" TargetType="{x:Type Thumb}"> <Border Name="bd" BorderThickness="0.8" CornerRadius="2" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}" Margin="0,1,0,1"> <Border.Background> <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1"> <GradientStop Color="#112299" Offset="0"/> <GradientStop Color="#3522AA" Offset="1"/> </LinearGradientBrush> </Border.Background> </Border> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Trigger.Setters> <Setter TargetName="bd" Property="BorderBrush" Value="#66BBEE"/> </Trigger.Setters> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> <ControlTemplate x:Key="myRepBt" TargetType="{x:Type RepeatButton}"> <Border Margin="0,2,0,2" BorderThickness="0.7" BorderBrush="#BBBBBB"> <Border.Background> <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1"> <GradientStop Color="White" Offset="0"/> <GradientStop Color="LightGray" Offset="1"/> </LinearGradientBrush> </Border.Background> </Border> </ControlTemplate> <ControlTemplate x:Key="rbtForScrollBar" TargetType="{x:Type RepeatButton}"> <Border CornerRadius="2" Margin="0,1,0,1"> <Border.Background> <LinearGradientBrush StartPoint="0,0" EndPoint="1,1"> <GradientStop Color="Yellow" Offset="0"/> <GradientStop Color="Orange" Offset="1"/> </LinearGradientBrush> </Border.Background> <Path VerticalAlignment="Center" HorizontalAlignment="Center" Data="{Binding Path=Content,RelativeSource={RelativeSource TemplatedParent}}" Fill="Black"/> </Border> </ControlTemplate> <ControlTemplate x:Key="ScrollTmp" TargetType="{x:Type ScrollBar}"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition MaxWidth="20"/> <ColumnDefinition Width="*"/> <ColumnDefinition MaxWidth="20"/> </Grid.ColumnDefinitions> <Border Grid.ColumnSpan="3" /> <RepeatButton Template="{StaticResource rbtForScrollBar}" Grid.Column="0" Margin="0,1,0,1" Command="ScrollBar.LineLeftCommand" Content="M0,4 L4,8 L4,0 Z"/> <Track Grid.Column="1" Name="PART_Track" Maximum="{TemplateBinding Maximum}" Minimum="{TemplateBinding Minimum}" Value="{TemplateBinding Value}"> <Track.DecreaseRepeatButton> <RepeatButton Template="{StaticResource myRepBt}" Command="ScrollBar.PageLeftCommand"/> </Track.DecreaseRepeatButton> <Track.IncreaseRepeatButton> <RepeatButton Template="{StaticResource myRepBt}" Command="ScrollBar.PageRightCommand"/> </Track.IncreaseRepeatButton> <Track.Thumb> <Thumb Width="auto" Template="{StaticResource myThumb}"/> </Track.Thumb> </Track> <RepeatButton Template="{StaticResource rbtForScrollBar}" Grid.Column="3" Margin="0,1,0,1" Command="ScrollBar.LineRightCommand" Content="M0,0 L0,8 4,4 Z"/> </Grid> </ControlTemplate> </Window.Resources> <Canvas Margin="10,10,10,10"> <ScrollBar Canvas.Left="5" Canvas.Top="5" Width="260" Height="28" Template="{StaticResource ScrollTmp}" Orientation="Horizontal" Maximum="5" Minimum="0"/> </Canvas> </Window>
查看全文
相关阅读:
Oracle Grid 11.2.0.4 安装是出现“[INS-41112] Specified network interface doesnt maintain connectivity across cluster”错误
复旦大学2018--2019学年第二学期(18级)高等代数II期末考试第七大题解答
复旦大学2018--2019学年第二学期(18级)高等代数II期末考试第八大题解答
复旦大学高等代数在线课程2018--2019学年记录
凝心聚力、创建一流 —“综合性高校高等代数课程教学研讨会”在复旦举行
复旦高等代数II(18级)每周一题
复旦大学高等代数在线课程2018--2019学年学习情况分析及文字评教信息
复旦大学2018--2019学年第一学期高等代数I期末考试情况分析
复旦大学2018--2019学年第一学期(18级)高等代数I期末考试第七大题解答
复旦大学2018--2019学年第一学期(18级)高等代数I期末考试第八大题解答
原文地址:https://www.cnblogs.com/javawebsoa/p/2457970.html
最新文章
Java中的泛型
C++ DLL导出类 知识大全
随笔分类
C++类库开发详解(转)
GhostScript命令参数详解(转)
C# 中静态调用C++dll 和C# 中动态调用C++dll
C# 只允许运行一个程序实例
c# 调用 C++ dll 传入传出类型对应说明(转)
nameof 运算符
C# 中的"yield"使用
热门文章
如何在sqlserver 的函数或存储过程中抛出异常。
Fedora Server 21下OpenJdk和Oracle Jdk共存
Fedora 21 安装 Bumblebee with the NVIDIA proprietary drivers
Fedora Server 21 安装 搜狗拼音输入法
Fedora 21 安装 Budgie Desktop
Oracle11.2.0.4 RAC GI ORA-15003: diskgroup "XXXX" already mounted in another lock name space
CentOS重新加载网卡报错 Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/23
CentOS 添加 Oracle YUM 源
Oracle Grid 11.2.0.4 安装是出现"INS-30510: Insufficient number of ASM disks selected."
使用DiskGenius对虚拟机磁盘进行压缩
Copyright © 2011-2022 走看看