zoukankan      html  css  js  c++  java
  • 继续聊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>  
  • 相关阅读:
    向TRichEdit插入图片的单元
    等待程序结束后, 自动启动程序的批处理
    执行程序函数
    基于IWICImage的截图代码
    线程中WICImage与Bitmap数据转换
    清理win10过期补丁的命令
    [转] 常见的哈希函数
    豆瓣小组爬虫.....^_^
    如何在ASP.NET Core中实现CORS跨域
    在ASP.NET Core中使用Angular2,以及与Angular2的Token base身份认证
  • 原文地址:https://www.cnblogs.com/xieweikai/p/6832740.html
Copyright © 2011-2022 走看看