AutoDisappearScrollViewerStyle.xaml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:sys="clr-namespace:System;assembly=mscorlib">
  4. <sys:Double x:Key="ScrollBar.Thumb.Width">6</sys:Double>
  5. <SolidColorBrush x:Key="ScrollThumb_Background">#90686868</SolidColorBrush>
  6. <SolidColorBrush x:Key="ScrollThumb_MouseOver_Background">#686868</SolidColorBrush>
  7. <Style x:Key="ScrollBarThumb" TargetType="{x:Type Thumb}">
  8. <Setter Property="OverridesDefaultStyle" Value="true" />
  9. <Setter Property="IsTabStop" Value="false" />
  10. <Setter Property="Template">
  11. <Setter.Value>
  12. <ControlTemplate TargetType="{x:Type Thumb}">
  13. <Grid>
  14. <Rectangle x:Name="thumbRect" Fill="{StaticResource ScrollThumb_Background}" RadiusX="3" RadiusY="3" />
  15. </Grid>
  16. <ControlTemplate.Triggers>
  17. <Trigger Property="IsMouseOver" Value="True">
  18. <Setter TargetName="thumbRect" Property="Fill" Value="{StaticResource ScrollThumb_MouseOver_Background}" />
  19. </Trigger>
  20. </ControlTemplate.Triggers>
  21. </ControlTemplate>
  22. </Setter.Value>
  23. </Setter>
  24. </Style>
  25. <Style x:Key="HorizontalScrollBarPageButton" TargetType="{x:Type RepeatButton}">
  26. <Setter Property="OverridesDefaultStyle" Value="true" />
  27. <Setter Property="Background" Value="Transparent" />
  28. <Setter Property="Focusable" Value="false" />
  29. <Setter Property="IsTabStop" Value="false" />
  30. <Setter Property="Opacity" Value="0" />
  31. <Setter Property="Template">
  32. <Setter.Value>
  33. <ControlTemplate TargetType="{x:Type RepeatButton}">
  34. <Rectangle Width="{TemplateBinding Width}"
  35. Height="{TemplateBinding Height}"
  36. Fill="{TemplateBinding Background}" />
  37. </ControlTemplate>
  38. </Setter.Value>
  39. </Setter>
  40. </Style>
  41. <Style x:Key="VerticalScrollBarPageButton" TargetType="{x:Type RepeatButton}">
  42. <Setter Property="OverridesDefaultStyle" Value="true" />
  43. <Setter Property="Background" Value="Transparent" />
  44. <Setter Property="Focusable" Value="false" />
  45. <Setter Property="IsTabStop" Value="false" />
  46. <Setter Property="Opacity" Value="0" />
  47. <Setter Property="Template">
  48. <Setter.Value>
  49. <ControlTemplate TargetType="{x:Type RepeatButton}">
  50. <Rectangle Width="{TemplateBinding Width}"
  51. Height="{TemplateBinding Height}"
  52. Fill="{TemplateBinding Background}" />
  53. </ControlTemplate>
  54. </Setter.Value>
  55. </Setter>
  56. </Style>
  57. <Style x:Key="for_scrollbar" TargetType="{x:Type ScrollBar}">
  58. <Setter Property="Stylus.IsPressAndHoldEnabled" Value="false" />
  59. <Setter Property="Stylus.IsFlicksEnabled" Value="false" />
  60. <Setter Property="Background" Value="Transparent" />
  61. <Setter Property="Margin" Value="0,1,1,1" />
  62. <Setter Property="Width" Value="{StaticResource ScrollBar.Thumb.Width}" />
  63. <Setter Property="MinWidth" Value="5" />
  64. <Setter Property="Opacity" Value="0" />
  65. <Setter Property="Template">
  66. <Setter.Value>
  67. <ControlTemplate TargetType="{x:Type ScrollBar}">
  68. <Grid x:Name="Bg" SnapsToDevicePixels="true">
  69. <Track x:Name="PART_Track" IsDirectionReversed="true"
  70. IsEnabled="{TemplateBinding IsMouseOver}">
  71. <Track.DecreaseRepeatButton>
  72. <RepeatButton Command="{x:Static ScrollBar.PageUpCommand}" Style="{StaticResource VerticalScrollBarPageButton}" />
  73. </Track.DecreaseRepeatButton>
  74. <Track.IncreaseRepeatButton>
  75. <RepeatButton Command="{x:Static ScrollBar.PageDownCommand}" Style="{StaticResource VerticalScrollBarPageButton}" />
  76. </Track.IncreaseRepeatButton>
  77. <Track.Thumb>
  78. <Thumb Style="{StaticResource ScrollBarThumb}" />
  79. </Track.Thumb>
  80. </Track>
  81. </Grid>
  82. </ControlTemplate>
  83. </Setter.Value>
  84. </Setter>
  85. <Style.Triggers>
  86. <Trigger Property="Orientation" Value="Horizontal">
  87. <Setter Property="Background" Value="Transparent" />
  88. <Setter Property="Margin" Value="1,0,6,1" />
  89. <Setter Property="Height" Value="5" />
  90. <Setter Property="MinHeight" Value="5" />
  91. <Setter Property="Width" Value="Auto" />
  92. <Setter Property="Opacity" Value="0" />
  93. <Setter Property="Template">
  94. <Setter.Value>
  95. <ControlTemplate TargetType="{x:Type ScrollBar}">
  96. <Grid x:Name="Bg" SnapsToDevicePixels="true">
  97. <Track x:Name="PART_Track" IsEnabled="{TemplateBinding IsMouseOver}">
  98. <Track.DecreaseRepeatButton>
  99. <RepeatButton Command="{x:Static ScrollBar.PageLeftCommand}" Style="{StaticResource HorizontalScrollBarPageButton}" />
  100. </Track.DecreaseRepeatButton>
  101. <Track.IncreaseRepeatButton>
  102. <RepeatButton Command="{x:Static ScrollBar.PageRightCommand}" Style="{StaticResource HorizontalScrollBarPageButton}" />
  103. </Track.IncreaseRepeatButton>
  104. <Track.Thumb>
  105. <Thumb Style="{StaticResource ScrollBarThumb}" />
  106. </Track.Thumb>
  107. </Track>
  108. </Grid>
  109. </ControlTemplate>
  110. </Setter.Value>
  111. </Setter>
  112. </Trigger>
  113. </Style.Triggers>
  114. </Style>
  115. <!-- ScrollViewer -->
  116. <Style x:Key="AutoDisappearScrollViewerStyle" TargetType="{x:Type ScrollViewer}">
  117. <Setter Property="BorderBrush" Value="LightGray" />
  118. <Setter Property="BorderThickness" Value="0" />
  119. <!--<Setter Property="HorizontalContentAlignment" Value="Left" />-->
  120. <Setter Property="HorizontalScrollBarVisibility" Value="Auto" />
  121. <!--<Setter Property="VerticalContentAlignment" Value="Top" />-->
  122. <Setter Property="VerticalScrollBarVisibility" Value="Auto" />
  123. <Setter Property="Template">
  124. <Setter.Value>
  125. <ControlTemplate TargetType="{x:Type ScrollViewer}">
  126. <Border x:Name="Bd" Background="Transparent" BorderBrush="{TemplateBinding BorderBrush}"
  127. BorderThickness="{TemplateBinding BorderThickness}"
  128. SnapsToDevicePixels="True">
  129. <Grid Background="{TemplateBinding Background}">
  130. <ScrollContentPresenter Margin="{TemplateBinding Padding}"
  131. ContentTemplate="{TemplateBinding ContentTemplate}"
  132. Cursor="{TemplateBinding Cursor}" />
  133. <ScrollBar x:Name="PART_VerticalScrollBar" HorizontalAlignment="Right"
  134. Maximum="{TemplateBinding ScrollableHeight}"
  135. Orientation="Vertical"
  136. Style="{StaticResource for_scrollbar}"
  137. ViewportSize="{TemplateBinding ViewportHeight}"
  138. Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
  139. Value="{TemplateBinding VerticalOffset}" />
  140. <ScrollBar x:Name="PART_HorizontalScrollBar" VerticalAlignment="Bottom"
  141. Maximum="{TemplateBinding ScrollableWidth}"
  142. Orientation="Horizontal"
  143. Style="{StaticResource for_scrollbar}"
  144. ViewportSize="{TemplateBinding ViewportWidth}"
  145. Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
  146. Value="{TemplateBinding HorizontalOffset}" />
  147. </Grid>
  148. </Border>
  149. <ControlTemplate.Triggers>
  150. <!--<EventTrigger RoutedEvent="ScrollChanged">
  151. <BeginStoryboard>
  152. <Storyboard>
  153. <DoubleAnimation Duration="0:0:1" Storyboard.TargetName="PART_VerticalScrollBar" Storyboard.TargetProperty="Opacity" To="1" />
  154. <DoubleAnimation BeginTime="0:0:1" Duration="0:0:1" Storyboard.TargetName="PART_VerticalScrollBar" Storyboard.TargetProperty="Opacity" To="0" />
  155. <DoubleAnimation Duration="0:0:1" Storyboard.TargetName="PART_HorizontalScrollBar" Storyboard.TargetProperty="Opacity" To="1" />
  156. <DoubleAnimation BeginTime="0:0:1" Duration="0:0:1" Storyboard.TargetName="PART_HorizontalScrollBar" Storyboard.TargetProperty="Opacity" To="0" />
  157. </Storyboard>
  158. </BeginStoryboard>
  159. </EventTrigger>-->
  160. <EventTrigger RoutedEvent="MouseEnter" SourceName="Bd">
  161. <BeginStoryboard>
  162. <Storyboard>
  163. <DoubleAnimation Duration="0:0:0.2" Storyboard.TargetName="PART_VerticalScrollBar" Storyboard.TargetProperty="Opacity" To="1" />
  164. </Storyboard>
  165. </BeginStoryboard>
  166. </EventTrigger>
  167. <EventTrigger RoutedEvent="MouseLeave" SourceName="Bd">
  168. <BeginStoryboard>
  169. <Storyboard>
  170. <DoubleAnimation BeginTime="0:0:1" Duration="0:0:0.5" Storyboard.TargetName="PART_VerticalScrollBar" Storyboard.TargetProperty="Opacity" To="0" />
  171. </Storyboard>
  172. </BeginStoryboard>
  173. </EventTrigger>
  174. <EventTrigger RoutedEvent="MouseEnter" SourceName="Bd">
  175. <BeginStoryboard>
  176. <Storyboard>
  177. <DoubleAnimation Duration="0:0:0.2" Storyboard.TargetName="PART_HorizontalScrollBar" Storyboard.TargetProperty="Opacity" To="1" />
  178. </Storyboard>
  179. </BeginStoryboard>
  180. </EventTrigger>
  181. <EventTrigger RoutedEvent="MouseLeave" SourceName="Bd">
  182. <BeginStoryboard>
  183. <Storyboard>
  184. <DoubleAnimation BeginTime="0:0:1" Duration="0:0:0.5" Storyboard.TargetName="PART_HorizontalScrollBar" Storyboard.TargetProperty="Opacity" To="0" />
  185. </Storyboard>
  186. </BeginStoryboard>
  187. </EventTrigger>
  188. </ControlTemplate.Triggers>
  189. </ControlTemplate>
  190. </Setter.Value>
  191. </Setter>
  192. </Style>
  193. </ResourceDictionary>