• <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——自定义滚动条的更多相关文章

  1. WPF 自定义滚动条样式

    先看一下效果: 先分析一下滚动条有哪儿几部分组成: 滚动条总共有五部分组成: 两端的箭头按钮,实际类型为RepeatButton Thumb 两端的空白,实际也是RepeatButton 最后就是Th ...

  2. WPF 自定义滚动条(ScrollView、ScrollBar)样式

    一.滚动条基本样式 本次修改Scrollview及ScrollBar滚动条样式是通过纯样式实现的.修改的内容包含滚动条的颜色,上下按钮的隐藏.另外添加了鼠标经过滚动条动画. style样式如下: &l ...

  3. WPF自定义滚动条

    我修改了一些地方,部分代码参考了博主 https://www.cnblogs.com/xiaomingg/ <!-- ScrollViewer 滚动条 --> <Style x:Ke ...

  4. 继续聊WPF——自定义CheckBox控件外观

    上一篇文章中谈到了BulletDecorator控件,就是为自定义CheckBox控件的模板做准备,因为CheckBox需要比较严格的布局,正好,BulletDecorator控件就合适了,该控件的布 ...

  5. WPF ScrollViewer(滚动条) 自定义样式表制作 再发一套样式 细节优化

    艾尼路 出的效果图 本人嵌套 WPF ScrollViewer(滚动条) 自定义样式表制作 图文并茂 WPF ScrollViewer(滚动条) 自定义样式表制作 (改良+美化) 源代码

  6. wpf之自定义滚动条

    原文:wpf之自定义滚动条 首先我们添加一个带滚动条的textbox控件: <ScrollViewer Height="130" Width="620" ...

  7. WPF ScrollViewer(滚动条) 自定义样式表制作 图文并茂

    原文:WPF ScrollViewer(滚动条) 自定义样式表制作 图文并茂 先上效果图 正常样式 拖动时样式 好下面 开始吧 ==================================== ...

  8. WPF ScrollViewer(滚动条) 自定义样式表制作 (改良+美化)

    原文:WPF ScrollViewer(滚动条) 自定义样式表制作 (改良+美化) 注释直接写在代码里了   不太理解意思的 可以先去看看我上一篇  WPF ScrollViewer(滚动条)  自定 ...

  9. WPF自定义TextBox及ScrollViewer

    原文:WPF自定义TextBox及ScrollViewer 寒假过完,在家真心什么都做不了,可能年龄大了,再想以前那样能专心坐下来已经不行了.回来第一件事就是改了项目的一个bug,最近又新增了一个新的 ...

随机推荐

  1. Hibernate学习笔记(八) — 懒载入与抓取策略

    懒载入(Load On Demand)是一种独特而又强大的数据获取方法,它可以在用户滚动页面的时候自己主动获取很多其它的数据,而新得到的数据不会影响原有数据的显示,同一时候最大程度上降低server端 ...

  2. python 004 执行环境对比

    对比:os.system os.popen subprocess.Popen subprocess.call 为什么要搞这么多? # --*--encoding: utf-8--*-- import ...

  3. 【Android开发VR实战】三.开发一个寻宝类VR游戏TreasureHunt

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53939303 本文出自[DylanAndroid的博客] [Android开发 ...

  4. 【Discuz】去除版权信息,标题栏与底部改动

    这篇文章尽管是介绍怎么把Discuz!的版权信息怎么搞得无影无踪,可是还是建议在不影响论坛视觉效果的情况下,保留Discuz的版权信息,毕竟它为我奉献了一个这么出色的开源论坛的phpproject.主 ...

  5. Android中Calendar类的用法总结

    Calendar是Android开发中需要获取时间时必不可少的一个工具类,通过这个类可以获得的时间信息还是很丰富的,下面做一个总结,以后使用的时候就不用总是去翻书或者查资料了. 在获取时间之前要先获得 ...

  6. CAS配置记录

    CAS配置(1)之证书配置 CAS配置(2)之主配置 CAS配置(3)之restful-api接入接口

  7. 关于jquery的clone()和javascript的cloneNode()

    区别: jquery的clone( ),如果是true就是深克隆,把事件都会克隆过去:如果是false,则仅仅克隆的是结构: javascript的cloneNode( ),如果是true,会将子节点 ...

  8. python--7、面向对象

    什么是面向对象 对象,即抽象的一类事物中的某个具体的个体.这个世界中存在的一切皆为对象,不存在的也能创建出来. 较之面向过程的区别: 编程的复杂度远高于面向过程,不了解面向对象而立即上手基于它设计程序 ...

  9. halcon 模板匹配 -- 转化 vector_angle_to_rigid

    ********************************模板匹配 ********************create_shape_model创建模板,这个函数有许多参数,其中金字塔的级数由N ...

  10. 排序算法Java版

    选择排序: public static void selectSort(int[]a) { int minIndex=0; int temp=0; if((a==null)||(a.length==0 ...