ButtonStyle.xaml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  3. <ResourceDictionary.MergedDictionaries>
  4. <ResourceDictionary Source="../Themes/Global.xaml"></ResourceDictionary>
  5. </ResourceDictionary.MergedDictionaries>
  6. <Style x:Key="TransparentButtonStyle" TargetType="{x:Type Button}">
  7. <Setter Property="Background" Value="Transparent"/>
  8. <Setter Property="BorderBrush" Value="Transparent"/>
  9. <Setter Property="Foreground" Value="White"/>
  10. <Setter Property="Template">
  11. <Setter.Value>
  12. <ControlTemplate TargetType="{x:Type Button}">
  13. <Border x:Name="border"
  14. Background="{TemplateBinding Background}"
  15. BorderBrush="{TemplateBinding BorderBrush}"
  16. BorderThickness="{TemplateBinding BorderThickness}">
  17. <ContentPresenter HorizontalAlignment="Center"
  18. VerticalAlignment="Center"/>
  19. </Border>
  20. <ControlTemplate.Triggers>
  21. <Trigger Property="IsMouseOver" Value="True">
  22. <Setter TargetName="border" Property="Background" Value="#4C000000"/>
  23. <Setter TargetName="border" Property="BorderBrush" Value="White"/>
  24. </Trigger>
  25. <Trigger Property="IsPressed" Value="True">
  26. <Setter TargetName="border" Property="Background" Value="#80000000"/>
  27. <Setter TargetName="border" Property="BorderBrush" Value="White"/>
  28. </Trigger>
  29. </ControlTemplate.Triggers>
  30. </ControlTemplate>
  31. </Setter.Value>
  32. </Setter>
  33. </Style>
  34. <Style x:Key="FocusVisual">
  35. <Setter Property="Control.Template">
  36. <Setter.Value>
  37. <ControlTemplate>
  38. <Rectangle Margin="2" StrokeDashArray="1 2" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" SnapsToDevicePixels="true" StrokeThickness="1"/>
  39. </ControlTemplate>
  40. </Setter.Value>
  41. </Setter>
  42. </Style>
  43. <Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
  44. <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
  45. <Setter Property="Background" Value="{StaticResource Button.Static.Background}"/>
  46. <Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/>
  47. <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
  48. <Setter Property="BorderThickness" Value="1"/>
  49. <Setter Property="HorizontalContentAlignment" Value="Center"/>
  50. <Setter Property="VerticalContentAlignment" Value="Center"/>
  51. <Setter Property="Padding" Value="1"/>
  52. <Setter Property="Template">
  53. <Setter.Value>
  54. <ControlTemplate TargetType="{x:Type Button}">
  55. <Border x:Name="border"
  56. Background="{TemplateBinding Background}"
  57. BorderBrush="{TemplateBinding BorderBrush}"
  58. BorderThickness="{TemplateBinding BorderThickness}"
  59. SnapsToDevicePixels="true">
  60. <ContentPresenter x:Name="contentPresenter"
  61. Focusable="False"
  62. HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
  63. Margin="{TemplateBinding Padding}"
  64. RecognizesAccessKey="True"
  65. SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
  66. VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
  67. </Border>
  68. <ControlTemplate.Triggers>
  69. <Trigger Property="IsDefaulted" Value="true">
  70. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
  71. </Trigger>
  72. <Trigger Property="IsMouseOver" Value="true">
  73. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.MouseOver.Background}"/>
  74. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.MouseOver.Border}"/>
  75. </Trigger>
  76. <Trigger Property="IsPressed" Value="true">
  77. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  78. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
  79. </Trigger>
  80. <Trigger Property="IsEnabled" Value="false">
  81. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background}"/>
  82. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/>
  83. <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"/>
  84. </Trigger>
  85. <Trigger Property="IsEnabled" Value="True">
  86. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Enabled.Foreground}"/>
  87. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Enabled.Foreground}"/>
  88. <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Text.Enabled.Foreground}"/>
  89. </Trigger>
  90. </ControlTemplate.Triggers>
  91. </ControlTemplate>
  92. </Setter.Value>
  93. </Setter>
  94. </Style>
  95. <Style x:Key="LightButtonStyle" TargetType="{x:Type Button}">
  96. <Setter Property="Template">
  97. <Setter.Value>
  98. <ControlTemplate TargetType="{x:Type Button}">
  99. <Border x:Name="border"
  100. Background="{TemplateBinding Background}"
  101. BorderBrush="{TemplateBinding BorderBrush}"
  102. BorderThickness="{TemplateBinding BorderThickness}"
  103. SnapsToDevicePixels="true">
  104. <ContentPresenter x:Name="contentPresenter"
  105. Focusable="False"
  106. HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
  107. Margin="{TemplateBinding Padding}"
  108. RecognizesAccessKey="True"
  109. SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
  110. VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
  111. </Border>
  112. <ControlTemplate.Triggers>
  113. <Trigger Property="IsDefaulted" Value="true">
  114. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
  115. </Trigger>
  116. <Trigger Property="IsMouseOver" Value="true">
  117. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  118. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  119. </Trigger>
  120. <Trigger Property="IsPressed" Value="true">
  121. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  122. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
  123. </Trigger>
  124. <Trigger Property="IsEnabled" Value="false">
  125. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background}"/>
  126. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/>
  127. <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"/>
  128. </Trigger>
  129. </ControlTemplate.Triggers>
  130. </ControlTemplate>
  131. </Setter.Value>
  132. </Setter>
  133. </Style>
  134. <Style x:Key="RoundButtonStyle" TargetType="{x:Type Button}">
  135. <Setter Property="Template">
  136. <Setter.Value>
  137. <ControlTemplate TargetType="{x:Type Button}">
  138. <Border x:Name="border"
  139. Background="{TemplateBinding Background}"
  140. BorderBrush="{TemplateBinding BorderBrush}"
  141. BorderThickness="{TemplateBinding BorderThickness}"
  142. SnapsToDevicePixels="true" CornerRadius="5">
  143. <ContentPresenter x:Name="contentPresenter"
  144. Focusable="False"
  145. HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
  146. Margin="{TemplateBinding Padding}"
  147. RecognizesAccessKey="True"
  148. SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
  149. VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
  150. </Border>
  151. <ControlTemplate.Triggers>
  152. <Trigger Property="IsDefaulted" Value="true">
  153. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
  154. </Trigger>
  155. <Trigger Property="IsMouseOver" Value="true">
  156. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  157. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
  158. </Trigger>
  159. <Trigger Property="IsPressed" Value="true">
  160. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  161. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
  162. </Trigger>
  163. </ControlTemplate.Triggers>
  164. </ControlTemplate>
  165. </Setter.Value>
  166. </Setter>
  167. </Style>
  168. <Style x:Key="RoundMarginButtonStyle" TargetType="{x:Type Button}">
  169. <Setter Property="Template">
  170. <Setter.Value>
  171. <ControlTemplate TargetType="{x:Type Button}">
  172. <Border x:Name="border"
  173. Background="{TemplateBinding Background}"
  174. BorderBrush="{TemplateBinding BorderBrush}"
  175. BorderThickness="{TemplateBinding BorderThickness}"
  176. SnapsToDevicePixels="true" CornerRadius="4" Margin="0,5">
  177. <ContentPresenter x:Name="contentPresenter"
  178. Focusable="False"
  179. HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
  180. Margin="{TemplateBinding Padding}"
  181. RecognizesAccessKey="True"
  182. SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
  183. VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
  184. </Border>
  185. <ControlTemplate.Triggers>
  186. <Trigger Property="IsDefaulted" Value="true">
  187. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
  188. </Trigger>
  189. <Trigger Property="IsMouseOver" Value="true">
  190. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  191. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
  192. </Trigger>
  193. <Trigger Property="IsPressed" Value="true">
  194. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  195. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
  196. </Trigger>
  197. </ControlTemplate.Triggers>
  198. </ControlTemplate>
  199. </Setter.Value>
  200. </Setter>
  201. </Style>
  202. </ResourceDictionary>