发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
Wpf的ScrollBar可以分为六个区域:A.背景、B.向上按钮、C.向下的按钮、D.Track里面向上的按钮、E.Track里面向下的按钮、F.Track的Thumb
详情见下图
下面通过一个例子来自定义ScrollBar的样式
<Style x:Key="ScrollBar_style" TargetType="ScrollBar"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ScrollBar"> <Grid Width="15"> <Border Width="13" HorizontalAlignment="Center" CornerRadius="5" Background="#33555555"> </Border> <Track HorizontalAlignment="Center" Name="PART_Track" Width="{TemplateBinding Width}" Maximum="{TemplateBinding Maximum}" Minimum="{TemplateBinding Minimum}" Value="{TemplateBinding Value}" IsDirectionReversed="true"> <Track.DecreaseRepeatButton> <RepeatButton Template="{StaticResource scroll_background}" Command="ScrollBar.LineUpCommand" /> </Track.DecreaseRepeatButton> <Track.IncreaseRepeatButton> <RepeatButton Template="{StaticResource scroll_background}" Command="ScrollBar.LineDownCommand" /> </Track.IncreaseRepeatButton> <Track.Thumb> <Thumb Style="{StaticResource scroll_thumb_style}" > </Thumb> </Track.Thumb> </Track> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style>
这里用到了两个其它的样式,其中 scroll_background 定义Track.DecreaseRepeatButton 、 Track.IncreaseRepeatButton的背景
<ControlTemplate x:Key="scroll_background" TargetType="RepeatButton"> <Border Background="Transparent"> </Border> </ControlTemplate>
scroll_thumb_style定义Thumb的外观
<Style x:Key="scroll_thumb_style" TargetType="Thumb"> <Setter Property="SnapsToDevicePixels" Value="True"/> <Setter Property="OverridesDefaultStyle" Value="true"/> <Setter Property="IsTabStop" Value="false"/> <Setter Property="Focusable" Value="false"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="Thumb"> <Rectangle Width="13" Fill="#7D7D7D" RadiusX="5" RadiusY="5"> </Rectangle> </ControlTemplate> </Setter.Value> </Setter> </Style>
这里的Thumb的Height是自动的大小,如果想自己设定Thumb的Height,直接设置时没有效果的,必须要将Track的ViewportSize设置为NaN即 ViewportSize="NaN"上面的例子中只定义了A,D-F区域,B、C即向上滑动和向下滑动的那妞被去掉,如果要加上,只需要在Grid里面添加上既可以了
<Grid.RowDefinitions> <RowDefinition Height="15" /> <RowDefinition Height="*" /> <RowDefinition Height="15" /> </Grid.RowDefinitions> <!--<Border Grid.RowSpan="3"> <Border.Background> <ImageBrush ImageSource="/images/scroll_line_background.png" /> </Border.Background> </Border>--> <Border Grid.RowSpan="3"> <Border.Background> <ImageBrush ImageSource="/images/scroll_background.png" /> </Border.Background> </Border> <RepeatButton Template="{StaticResource scroll_up}" Grid.Row="0" Command="ScrollBar.LineUpCommand" /> <RepeatButton Template="{StaticResource scroll_down}" Grid.Row="2" Command="ScrollBar.LineDownCommand" />
最终运行结果
来自: 昵称10504424 > 《工作》
0条评论
发表
请遵守用户 评论公约
WPF自定义控件与样式(6)
--<Setter Property="VerticalContentAlignment" Value="Center" />--> <Setter Property="MinHeight" Value="25" /> <Setter Property=&q...
TabControl
<TabItem Header="Background" IsSelected="true"></TabItem><TabItem Header="Foreground"></TabItem><TabItem Header="BorderBrush&...
C# WPF 一个设计界面
Value> </Setter> <Setter TargetName="PART_Track" Property="LayoutTransform"> <Setter.Valu...
【WPF学习】第六十二章 构建更复杂的模板
<Style x:Key="ScrollBarThumbStyle" TargetType="{x:Type Thumb}"> <Setter Property="IsTabStop" Value="False"/> <Setter Property="...
滚动框(条)大全及代码说明
HTML语法:<DIV style="FILTER: Chroma(Color=green)glow(color:6666ff,Strength=6); HEIGHT: 1px"><DIV style="SCROLLBAR-FACE-COLOR: green; SCROLLBAR-HIGHLIGHT-COLOR: red...
手动滚动边框代码(2)
<DIV style="BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; SCROLLBAR-HIGHLIGHT-COLOR: #ffffff; OVERFLOW: scroll; BORDER-LEFT: gray 1px solid; WIDTH: 231px; SCROLLBAR-SH...
使用Custom.css调整Google Chrome 滚动条样式
使用Custom.css调整Google Chrome 滚动条样式Resize and Style Google Chrome Scroll bar without ExtensionAdvertisements:Windows:%LOCALAPPDATA%\Google\Chrome\User Data\Default\User StyleSheets...
滚动条制作效果代码
<div style="WIDTH: 148; HEIGHT: 146; BACKGROUND-COLOR: transparent; OVERFLOW: scroll; scrollbar-face-color:#FFFFFF; scrollbar-shadow-color:#FFFFFF; scrollbar-highlight-color: #FFF...
插入滚动条的方法及代码
滚动条:代码说明: 滚动条强阴影的颜色
微信扫码,在手机上查看选中内容