Advertisement
Charliezkie

Apple Style Scrollbars WPF

May 30th, 2020
351
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 6.83 KB | None | 0 0
  1. first code:
  2.  
  3. <!--Scrollbar Thumbs-->
  4.     <Style x:Key="ScrollThumbs" TargetType="{x:Type Thumb}">
  5.         <Setter Property="Template">
  6.             <Setter.Value>
  7.                 <ControlTemplate TargetType="{x:Type Thumb}">
  8.                     <Grid x:Name="Grid">
  9.                         <Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" Height="Auto" Fill="Transparent" />
  10.                         <Border x:Name="Rectangle1" CornerRadius="5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" Height="Auto" Background="{TemplateBinding Background}" />
  11.                     </Grid>
  12.                     <ControlTemplate.Triggers>
  13.                         <Trigger Property="Tag" Value="Horizontal">
  14.                             <Setter TargetName="Rectangle1" Property="Width" Value="Auto" />
  15.                             <Setter TargetName="Rectangle1" Property="Height" Value="7" />
  16.                         </Trigger>
  17.                     </ControlTemplate.Triggers>
  18.                 </ControlTemplate>
  19.             </Setter.Value>
  20.         </Setter>
  21.     </Style>
  22.     <!--ScrollBars-->
  23.     <Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}">
  24.         <Setter Property="Stylus.IsFlicksEnabled" Value="false" />
  25.         <Setter Property="Foreground" Value="#8C8C8C" />
  26.         <Setter Property="Background" Value="Transparent" />
  27.         <Setter Property="Width" Value="8" />
  28.         <Setter Property="Template">
  29.             <Setter.Value>
  30.                 <ControlTemplate TargetType="{x:Type ScrollBar}">
  31.                     <Grid x:Name="GridRoot" Width="8" Background="{TemplateBinding Background}">
  32.                         <Grid.RowDefinitions>
  33.                             <RowDefinition Height="0.00001*" />
  34.                         </Grid.RowDefinitions>
  35.                         <Track x:Name="PART_Track" Grid.Row="0" IsDirectionReversed="true" Focusable="false">
  36.                             <Track.Thumb>
  37.                                 <Thumb x:Name="Thumb" Background="{TemplateBinding Foreground}" Style="{DynamicResource ScrollThumbs}" />
  38.                             </Track.Thumb>
  39.                             <Track.IncreaseRepeatButton>
  40.                                 <RepeatButton x:Name="PageUp" Command="ScrollBar.PageDownCommand" Opacity="0" Focusable="false" />
  41.                             </Track.IncreaseRepeatButton>
  42.                             <Track.DecreaseRepeatButton>
  43.                                 <RepeatButton x:Name="PageDown" Command="ScrollBar.PageUpCommand" Opacity="0" Focusable="false" />
  44.                             </Track.DecreaseRepeatButton>
  45.                         </Track>
  46.                     </Grid>
  47.                     <ControlTemplate.Triggers>
  48.                         <Trigger SourceName="Thumb" Property="IsMouseOver" Value="true">
  49.                             <Setter Value="{DynamicResource ButtonSelectBrush}" TargetName="Thumb" Property="Background" />
  50.                         </Trigger>
  51.                         <Trigger SourceName="Thumb" Property="IsDragging" Value="true">
  52.                             <Setter Value="{DynamicResource DarkBrush}" TargetName="Thumb" Property="Background" />
  53.                         </Trigger>
  54.                         <Trigger Property="IsEnabled" Value="false">
  55.                             <Setter TargetName="Thumb" Property="Visibility" Value="Collapsed" />
  56.                         </Trigger>
  57.                         <Trigger Property="Orientation" Value="Horizontal">
  58.                             <Setter TargetName="GridRoot" Property="LayoutTransform">
  59.                                 <Setter.Value>
  60.                                     <RotateTransform Angle="-90" />
  61.                                 </Setter.Value>
  62.                             </Setter>
  63.                             <Setter TargetName="PART_Track" Property="LayoutTransform">
  64.                                 <Setter.Value>
  65.                                     <RotateTransform Angle="-90" />
  66.                                 </Setter.Value>
  67.                             </Setter>
  68.                             <Setter Property="Width" Value="Auto" />
  69.                             <Setter Property="Height" Value="8" />
  70.                             <Setter TargetName="Thumb" Property="Tag" Value="Horizontal" />
  71.                             <Setter TargetName="PageDown" Property="Command" Value="ScrollBar.PageLeftCommand" />
  72.                             <Setter TargetName="PageUp" Property="Command" Value="ScrollBar.PageRightCommand" />
  73.                         </Trigger>
  74.                     </ControlTemplate.Triggers>
  75.                 </ControlTemplate>
  76.             </Setter.Value>
  77.         </Setter>
  78.     </Style>
  79.  
  80. second code:
  81.  
  82. <Style TargetType="{x:Type ScrollViewer}">
  83.         <Setter Property="Template">
  84.             <Setter.Value>
  85.                 <ControlTemplate TargetType="{x:Type ScrollViewer}">
  86.                     <Grid x:Name="Grid" Background="{TemplateBinding Background}">
  87.                         <Grid.ColumnDefinitions>
  88.                             <ColumnDefinition Width="*"/>
  89.                             <ColumnDefinition Width="Auto"/>
  90.                         </Grid.ColumnDefinitions>
  91.                         <Grid.RowDefinitions>
  92.                             <RowDefinition Height="*"/>
  93.                             <RowDefinition Height="Auto"/>
  94.                         </Grid.RowDefinitions>
  95.                         <Rectangle x:Name="Corner" Grid.Column="1" Fill="#FF3C3C3C" Grid.Row="1"/>
  96.                         <ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" CanHorizontallyScroll="False" CanVerticallyScroll="False" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Grid.Column="0" Margin="{TemplateBinding Padding}" Grid.Row="0"/>
  97.                         <ScrollBar x:Name="PART_VerticalScrollBar" AutomationProperties.AutomationId="VerticalScrollBar" Cursor="Arrow" Grid.Column="1" Maximum="{TemplateBinding ScrollableHeight}" Minimum="0" Grid.Row="0" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}"/>
  98.                         <ScrollBar x:Name="PART_HorizontalScrollBar" AutomationProperties.AutomationId="HorizontalScrollBar" Cursor="Arrow" Grid.Column="0" Maximum="{TemplateBinding ScrollableWidth}" Minimum="0" Orientation="Horizontal" Grid.Row="1" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}"/>
  99.                     </Grid>
  100.                 </ControlTemplate>
  101.             </Setter.Value>
  102.         </Setter>
  103.     </Style>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement