ButtonStyle.xaml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  2. <Style x:Key="FocusVisual">
  3. <Setter Property="Control.Template">
  4. <Setter.Value>
  5. <ControlTemplate>
  6. <Rectangle
  7. Margin="2"
  8. SnapsToDevicePixels="true"
  9. Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"
  10. StrokeDashArray="1 2"
  11. StrokeThickness="1" />
  12. </ControlTemplate>
  13. </Setter.Value>
  14. </Setter>
  15. </Style>
  16. <Style x:Key="TitleBarBtn" TargetType="{x:Type Button}">
  17. <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}" />
  18. <Setter Property="Background" Value="{StaticResource Button.Static.Background}" />
  19. <Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}" />
  20. <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
  21. <Setter Property="BorderThickness" Value="0" />
  22. <Setter Property="HorizontalContentAlignment" Value="Center" />
  23. <Setter Property="VerticalContentAlignment" Value="Center" />
  24. <Setter Property="Padding" Value="0" />
  25. <Setter Property="Width" Value="32" />
  26. <Setter Property="Height" Value="32" />
  27. <Setter Property="IsTabStop" Value="False" />
  28. <Setter Property="Template">
  29. <Setter.Value>
  30. <ControlTemplate TargetType="{x:Type Button}">
  31. <Border
  32. x:Name="border"
  33. Background="{TemplateBinding Background}"
  34. BorderBrush="{TemplateBinding BorderBrush}"
  35. BorderThickness="{TemplateBinding BorderThickness}"
  36. SnapsToDevicePixels="true">
  37. <ContentPresenter
  38. x:Name="contentPresenter"
  39. Margin="{TemplateBinding Padding}"
  40. HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
  41. VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
  42. Focusable="False"
  43. RecognizesAccessKey="True"
  44. SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
  45. </Border>
  46. <ControlTemplate.Triggers>
  47. <Trigger Property="IsMouseOver" Value="true">
  48. <Setter TargetName="border" Property="Background" Value="{StaticResource Button.MouseOver.Background}" />
  49. <Setter TargetName="border" Property="BorderBrush" Value="{StaticResource Button.MouseOver.Border}" />
  50. </Trigger>
  51. <Trigger Property="IsPressed" Value="true">
  52. <Setter TargetName="border" Property="Background" Value="{StaticResource Button.Pressed.Background}" />
  53. <Setter TargetName="border" Property="BorderBrush" Value="{StaticResource Button.Pressed.Border}" />
  54. </Trigger>
  55. <Trigger Property="IsEnabled" Value="false">
  56. <Setter TargetName="border" Property="Background" Value="{StaticResource Button.Disabled.Background}" />
  57. <Setter TargetName="border" Property="BorderBrush" Value="{StaticResource Button.Disabled.Border}" />
  58. <Setter TargetName="contentPresenter" Property="TextElement.Foreground" Value="{StaticResource Button.Disabled.Foreground}" />
  59. <Setter TargetName="contentPresenter" Property="Opacity" Value="0.5" />
  60. </Trigger>
  61. </ControlTemplate.Triggers>
  62. </ControlTemplate>
  63. </Setter.Value>
  64. </Setter>
  65. </Style>
  66. <!--只有内容的按钮(普通状态下,没有固定的边框和背景色)-->
  67. <!--<Setter Property="Background" Value="{StaticResource Button.Static.Background}" />
  68. <Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}" />-->
  69. <Style x:Key="OnlyContentBtn" TargetType="{x:Type Button}">
  70. <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}" />
  71. <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
  72. <Setter Property="BorderThickness" Value="0" />
  73. <Setter Property="HorizontalContentAlignment" Value="Center" />
  74. <Setter Property="VerticalContentAlignment" Value="Center" />
  75. <Setter Property="Background" Value="Transparent"/>
  76. <Setter Property="BorderBrush" Value="Transparent"/>
  77. <Setter Property="Padding" Value="0" />
  78. <Setter Property="Width" Value="32" />
  79. <Setter Property="Height" Value="32" />
  80. <Setter Property="IsTabStop" Value="False" />
  81. <Setter Property="Template">
  82. <Setter.Value>
  83. <ControlTemplate TargetType="{x:Type Button}">
  84. <Border
  85. x:Name="border"
  86. Background="{TemplateBinding Background}"
  87. BorderBrush="{TemplateBinding BorderBrush}"
  88. BorderThickness="{TemplateBinding BorderThickness}"
  89. SnapsToDevicePixels="true">
  90. <ContentPresenter
  91. x:Name="contentPresenter"
  92. Margin="{TemplateBinding Padding}"
  93. HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
  94. VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
  95. Focusable="False"
  96. RecognizesAccessKey="True"
  97. SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
  98. </Border>
  99. <ControlTemplate.Triggers>
  100. <Trigger Property="IsMouseOver" Value="true">
  101. <Setter TargetName="border" Property="Background" Value="{StaticResource Button.MouseOver.Background}" />
  102. <Setter TargetName="border" Property="BorderBrush" Value="{StaticResource Button.MouseOver.Border}" />
  103. </Trigger>
  104. <Trigger Property="IsPressed" Value="true">
  105. <Setter TargetName="border" Property="Background" Value="{StaticResource Button.Pressed.Background}" />
  106. <Setter TargetName="border" Property="BorderBrush" Value="{StaticResource Button.Pressed.Border}" />
  107. </Trigger>
  108. <Trigger Property="IsEnabled" Value="false">
  109. <Setter TargetName="contentPresenter" Property="TextElement.Foreground" Value="{StaticResource Button.Disabled.Foreground}" />
  110. <Setter TargetName="contentPresenter" Property="Opacity" Value="0.5" />
  111. </Trigger>
  112. </ControlTemplate.Triggers>
  113. </ControlTemplate>
  114. </Setter.Value>
  115. </Setter>
  116. </Style>
  117. <!-- 阅读模式的按钮模板样式 -->
  118. <ControlTemplate x:Key="zoomout" TargetType="{x:Type ButtonBase}">
  119. <Border
  120. Name="border"
  121. Background="{TemplateBinding Panel.Background}"
  122. BorderBrush="{TemplateBinding Border.BorderBrush}"
  123. BorderThickness="{TemplateBinding Border.BorderThickness}"
  124. SnapsToDevicePixels="True">
  125. <Path
  126. Name="content"
  127. Width="16"
  128. Height="16"
  129. HorizontalAlignment="Center"
  130. VerticalAlignment="Center"
  131. Data="M6.5,0 C10.0898509,0 13,2.91014913 13,6.5 C13,8.1223907 12.4056075,9.60595359 11.4227096,10.7448016 L15.5,14.8210176 L14.8210176,15.5 L10.7448016,11.4227096 C9.60595359,12.4056075 8.1223907,13 6.5,13 C2.91014913,13 0,10.0898509 0,6.5 C0,2.91014913 2.91014913,0 6.5,0 Z M6.5,1 C3.46243388,1 1,3.46243388 1,6.5 C1,9.53756612 3.46243388,12 6.5,12 C9.53756612,12 12,9.53756612 12,6.5 C12,3.46243388 9.53756612,1 6.5,1 Z M10,6 L10,7 L3,7 L3,6 L10,6 Z"
  132. Fill="White" />
  133. </Border>
  134. <ControlTemplate.Triggers>
  135. <Trigger Property="Button.IsDefaulted" Value="True">
  136. <Setter TargetName="content" Property="Path.Fill" Value="White" />
  137. </Trigger>
  138. <Trigger Property="UIElement.IsMouseOver" Value="True">
  139. <Setter TargetName="content" Property="Path.Fill" Value="#B3FFFFFF" />
  140. </Trigger>
  141. <Trigger Property="ButtonBase.IsPressed" Value="True">
  142. <Setter TargetName="content" Property="Path.Fill" Value="#80FFFFFF" />
  143. </Trigger>
  144. </ControlTemplate.Triggers>
  145. </ControlTemplate>
  146. <ControlTemplate x:Key="zoomin" TargetType="{x:Type ButtonBase}">
  147. <Border
  148. Name="border"
  149. Background="{TemplateBinding Panel.Background}"
  150. BorderBrush="{TemplateBinding Border.BorderBrush}"
  151. BorderThickness="{TemplateBinding Border.BorderThickness}"
  152. SnapsToDevicePixels="True">
  153. <Path
  154. Name="content"
  155. Width="16"
  156. Height="16"
  157. HorizontalAlignment="Center"
  158. VerticalAlignment="Center"
  159. Data="M6.5,0 C10.0898509,0 13,2.91014913 13,6.5 C13,8.1223907 12.4056075,9.60595359 11.4227096,10.7448016 L15.5,14.8210176 L14.8210176,15.5 L10.7448016,11.4227096 C9.60595359,12.4056075 8.1223907,13 6.5,13 C2.91014913,13 0,10.0898509 0,6.5 C0,2.91014913 2.91014913,0 6.5,0 Z M6.5,1 C3.46243388,1 1,3.46243388 1,6.5 C1,9.53756612 3.46243388,12 6.5,12 C9.53756612,12 12,9.53756612 12,6.5 C12,3.46243388 9.53756612,1 6.5,1 Z M7,3 L7,6 L10,6 L10,7 L7,7 L7,10 L6,10 L6,7 L3,7 L3,6 L6,6 L6,3 L7,3 Z"
  160. Fill="White" />
  161. </Border>
  162. <ControlTemplate.Triggers>
  163. <Trigger Property="Button.IsDefaulted" Value="True">
  164. <Setter TargetName="content" Property="Path.Fill" Value="White" />
  165. </Trigger>
  166. <Trigger Property="UIElement.IsMouseOver" Value="True">
  167. <Setter TargetName="content" Property="Path.Fill" Value="#B3FFFFFF" />
  168. </Trigger>
  169. <Trigger Property="ButtonBase.IsPressed" Value="True">
  170. <Setter TargetName="content" Property="Path.Fill" Value="#80FFFFFF" />
  171. </Trigger>
  172. </ControlTemplate.Triggers>
  173. </ControlTemplate>
  174. <ControlTemplate x:Key="prepage" TargetType="{x:Type ButtonBase}">
  175. <Border
  176. Name="border"
  177. Background="{TemplateBinding Panel.Background}"
  178. BorderBrush="{TemplateBinding Border.BorderBrush}"
  179. BorderThickness="0"
  180. SnapsToDevicePixels="True">
  181. <Polygon
  182. Name="content"
  183. Width="16"
  184. Height="16"
  185. HorizontalAlignment="Center"
  186. VerticalAlignment="Center"
  187. Fill="White"
  188. Points="10.2999705 2.5 11 3.22644971 6.39995321 8 11 12.7735503 10.2999705 13.5 5 8" />
  189. </Border>
  190. <ControlTemplate.Triggers>
  191. <Trigger Property="Button.IsDefaulted" Value="True">
  192. <Setter TargetName="content" Property="Path.Fill" Value="White" />
  193. </Trigger>
  194. <Trigger Property="UIElement.IsMouseOver" Value="True">
  195. <Setter TargetName="content" Property="Path.Fill" Value="#B3FFFFFF" />
  196. </Trigger>
  197. <Trigger Property="ButtonBase.IsPressed" Value="True">
  198. <Setter TargetName="content" Property="Path.Fill" Value="#80FFFFFF" />
  199. </Trigger>
  200. </ControlTemplate.Triggers>
  201. </ControlTemplate>
  202. <ControlTemplate x:Key="nextpage" TargetType="{x:Type ButtonBase}">
  203. <Border
  204. Name="border"
  205. Background="{TemplateBinding Panel.Background}"
  206. BorderBrush="{TemplateBinding Border.BorderBrush}"
  207. BorderThickness="0"
  208. SnapsToDevicePixels="True">
  209. <Polygon
  210. x:Name="content"
  211. Width="16"
  212. Height="16"
  213. Fill="White"
  214. Points="10.2999705 2.5 11 3.22644971 6.39995321 8 11 12.7735503 10.2999705 13.5 5 8">
  215. <Polygon.RenderTransform>
  216. <TransformGroup>
  217. <TranslateTransform X="-8" Y="8" />
  218. <ScaleTransform ScaleX="-1" ScaleY="1" />
  219. <TranslateTransform X="8" Y="-8" />
  220. </TransformGroup>
  221. </Polygon.RenderTransform>
  222. </Polygon>
  223. </Border>
  224. <ControlTemplate.Triggers>
  225. <Trigger Property="Button.IsDefaulted" Value="True">
  226. <Setter TargetName="content" Property="Path.Fill" Value="White" />
  227. </Trigger>
  228. <Trigger Property="UIElement.IsMouseOver" Value="True">
  229. <Setter TargetName="content" Property="Path.Fill" Value="#B3FFFFFF" />
  230. </Trigger>
  231. <Trigger Property="ButtonBase.IsPressed" Value="True">
  232. <Setter TargetName="content" Property="Path.Fill" Value="#80FFFFFF" />
  233. </Trigger>
  234. </ControlTemplate.Triggers>
  235. </ControlTemplate>
  236. </ResourceDictionary>