继续聊WPF——自定义滚动条
- <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>
继续聊WPF——自定义滚动条的更多相关文章
- WPF 自定义滚动条样式
先看一下效果: 先分析一下滚动条有哪儿几部分组成: 滚动条总共有五部分组成: 两端的箭头按钮,实际类型为RepeatButton Thumb 两端的空白,实际也是RepeatButton 最后就是Th ...
- WPF 自定义滚动条(ScrollView、ScrollBar)样式
一.滚动条基本样式 本次修改Scrollview及ScrollBar滚动条样式是通过纯样式实现的.修改的内容包含滚动条的颜色,上下按钮的隐藏.另外添加了鼠标经过滚动条动画. style样式如下: &l ...
- WPF自定义滚动条
我修改了一些地方,部分代码参考了博主 https://www.cnblogs.com/xiaomingg/ <!-- ScrollViewer 滚动条 --> <Style x:Ke ...
- 继续聊WPF——自定义CheckBox控件外观
上一篇文章中谈到了BulletDecorator控件,就是为自定义CheckBox控件的模板做准备,因为CheckBox需要比较严格的布局,正好,BulletDecorator控件就合适了,该控件的布 ...
- WPF ScrollViewer(滚动条) 自定义样式表制作 再发一套样式 细节优化
艾尼路 出的效果图 本人嵌套 WPF ScrollViewer(滚动条) 自定义样式表制作 图文并茂 WPF ScrollViewer(滚动条) 自定义样式表制作 (改良+美化) 源代码
- wpf之自定义滚动条
原文:wpf之自定义滚动条 首先我们添加一个带滚动条的textbox控件: <ScrollViewer Height="130" Width="620" ...
- WPF ScrollViewer(滚动条) 自定义样式表制作 图文并茂
原文:WPF ScrollViewer(滚动条) 自定义样式表制作 图文并茂 先上效果图 正常样式 拖动时样式 好下面 开始吧 ==================================== ...
- WPF ScrollViewer(滚动条) 自定义样式表制作 (改良+美化)
原文:WPF ScrollViewer(滚动条) 自定义样式表制作 (改良+美化) 注释直接写在代码里了 不太理解意思的 可以先去看看我上一篇 WPF ScrollViewer(滚动条) 自定 ...
- WPF自定义TextBox及ScrollViewer
原文:WPF自定义TextBox及ScrollViewer 寒假过完,在家真心什么都做不了,可能年龄大了,再想以前那样能专心坐下来已经不行了.回来第一件事就是改了项目的一个bug,最近又新增了一个新的 ...
随机推荐
- linux下查看监听port相应的进程
使用netstat查看进程PID [root@test ~]# netstat -anp|grep 5001 tcp 0 0 :::5001 :::* LISTEN 12886/java 之后各位看官 ...
- 自己定义控件-仿iphone之ToggleButton&VoiceSeekBar
由于项目中须要使用开关切换button,和声音滑动控件,可是原生Android5.0版本号以下的控件实在是太挫了.尽管网上已经有非常多关于这两个控件的blog.可是我实在是找不到像iPhone这样简洁 ...
- C# textbox中输入时加限制条件 // C#Winform下限制TextBox只能输入数字 // 才疏学浅(TextBox 小数点不能在首位+只能输入数字)
textbox中输入时加限制条件 分类: C# winform2008-08-26 08:30 306人阅读 评论(0) 收藏 举报 textbox正则表达式object 1.用正则表达式! 2.使用 ...
- Codeforces--630H--Benches(组合数)
H - Benches Crawling in process... Crawling failed Time Limit:500MS Memory Limit:65536KB 64b ...
- [POJ 3565] Ant
[题目链接] http://poj.org/problem?id=3565 [算法] KM算法求最小匹配 [代码] #include <algorithm> #include <bi ...
- es6入门6--数组拓展运算符,Array.from()基本用法
本文只是作为ES6入门第九章学习笔记,在整理知识点的同时,会加入部分个人思考与解答,若想知道更详细的介绍,还请阅读阮一峰大神的ES6入门 一.拓展运算符 ES6中新增了拓展运算(...)三个点,它的作 ...
- Spark2.2,IDEA,Maven开发环境搭建附测试
前言: 停滞了一段时间,现在要沉下心来学习点东西,出点货了. 本文没有JavaJDK ScalaSDK和 IDEA的安装过程,网络上会有很多文章介绍这个内容,因此这里就不再赘述. 一.在IDEA上安装 ...
- 数组中hashCode就是内存地址,以及汉字幻化为16进制或10进制
int[] arr4={1,2,3,4,5}; System.out.println("arr4: "+arr4); System.out.println("arr4.h ...
- jQuery考试之错题分析
获取元素范围大小顺序依次为: $(#one).siblings("div")>$("#one~div")>$("#one +div&quo ...
- RabbitMQ 官方NET教程(四)【路由选择】
在上一个教程中,我们构建了一个简单的日志记录系统. 我们能够广播日志消息给所有你的接收者. 在本教程中,我们将为其添加一个功能 - 我们将让日志接收者可以仅订阅一部分消息. 例如,我们将能够仅将关键的 ...