ToggleButtonStyle.xaml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  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="FocusVisual">
  7. <Setter Property="Control.Template">
  8. <Setter.Value>
  9. <ControlTemplate>
  10. <Rectangle Margin="2" StrokeDashArray="1 2" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" SnapsToDevicePixels="true" StrokeThickness="1"/>
  11. </ControlTemplate>
  12. </Setter.Value>
  13. </Setter>
  14. </Style>
  15. <Style x:Key="ToggleButtonStyle" TargetType="{x:Type ToggleButton}">
  16. <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
  17. <Setter Property="Background" Value="{StaticResource Button.Static.Background}"/>
  18. <Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/>
  19. <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
  20. <Setter Property="BorderThickness" Value="1"/>
  21. <Setter Property="HorizontalContentAlignment" Value="Center"/>
  22. <Setter Property="VerticalContentAlignment" Value="Center"/>
  23. <Setter Property="Padding" Value="1"/>
  24. <Setter Property="Template">
  25. <Setter.Value>
  26. <ControlTemplate TargetType="{x:Type ToggleButton}">
  27. <Border x:Name="border"
  28. Background="{TemplateBinding Background}"
  29. BorderBrush="{TemplateBinding BorderBrush}"
  30. BorderThickness="{TemplateBinding BorderThickness}"
  31. SnapsToDevicePixels="true">
  32. <ContentPresenter x:Name="contentPresenter"
  33. Focusable="False"
  34. HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
  35. Margin="{TemplateBinding Padding}"
  36. RecognizesAccessKey="True"
  37. SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
  38. VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
  39. </Border>
  40. <ControlTemplate.Triggers>
  41. <Trigger Property="Button.IsDefaulted" Value="true">
  42. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
  43. </Trigger>
  44. <Trigger Property="IsMouseOver" Value="true">
  45. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  46. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
  47. </Trigger>
  48. <Trigger Property="IsPressed" Value="true">
  49. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  50. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
  51. </Trigger>
  52. <Trigger Property="IsEnabled" Value="false">
  53. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background}"/>
  54. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/>
  55. <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"/>
  56. </Trigger>
  57. <Trigger Property="IsChecked" Value="True">
  58. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  59. </Trigger>
  60. </ControlTemplate.Triggers>
  61. </ControlTemplate>
  62. </Setter.Value>
  63. </Setter>
  64. </Style>
  65. <Style x:Key="RoundToggleButtonStyle" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource ToggleButtonStyle}">
  66. <Setter Property="Template">
  67. <Setter.Value>
  68. <ControlTemplate TargetType="{x:Type ToggleButton}">
  69. <Border x:Name="border"
  70. Background="{TemplateBinding Background}"
  71. BorderBrush="{TemplateBinding BorderBrush}"
  72. BorderThickness="{TemplateBinding BorderThickness}"
  73. SnapsToDevicePixels="true" CornerRadius="5">
  74. <ContentPresenter x:Name="contentPresenter"
  75. Focusable="False"
  76. HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
  77. Margin="{TemplateBinding Padding}"
  78. RecognizesAccessKey="True"
  79. SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
  80. VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
  81. </Border>
  82. <ControlTemplate.Triggers>
  83. <Trigger Property="Button.IsDefaulted" Value="true">
  84. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
  85. </Trigger>
  86. <Trigger Property="IsMouseOver" Value="true">
  87. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  88. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
  89. </Trigger>
  90. <Trigger Property="IsPressed" Value="true">
  91. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  92. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
  93. </Trigger>
  94. <Trigger Property="IsEnabled" Value="false">
  95. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background}"/>
  96. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/>
  97. <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"/>
  98. </Trigger>
  99. <Trigger Property="IsChecked" Value="True">
  100. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  101. </Trigger>
  102. </ControlTemplate.Triggers>
  103. </ControlTemplate>
  104. </Setter.Value>
  105. </Setter>
  106. </Style>
  107. <Style x:Key="TableToggleBtnStyle"
  108. TargetType="{x:Type ToggleButton}">
  109. <Style.BasedOn>
  110. <Style TargetType="{x:Type ButtonBase}">
  111. <Setter Property="FrameworkElement.FocusVisualStyle">
  112. <Setter.Value>
  113. <Style TargetType="{x:Type IFrameworkInputElement}">
  114. <Setter Property="Control.Template">
  115. <Setter.Value>
  116. <ControlTemplate>
  117. <Rectangle
  118. Margin="2"
  119. SnapsToDevicePixels="True"
  120. Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"
  121. StrokeDashArray="1 2"
  122. StrokeThickness="1" />
  123. </ControlTemplate>
  124. </Setter.Value>
  125. </Setter>
  126. </Style>
  127. </Setter.Value>
  128. </Setter>
  129. <Setter Property="Panel.Background" Value="#EAECF2" />
  130. <Setter Property="Border.BorderBrush" Value="Transparent" />
  131. <Setter Property="Foreground" Value="#000000" />
  132. <Setter Property="Border.BorderThickness" Value="0" />
  133. <Setter Property="Control.HorizontalContentAlignment" Value="Center" />
  134. <Setter Property="Control.VerticalContentAlignment" Value="Center" />
  135. <Setter Property="Control.Padding" Value="1" />
  136. <Setter Property="Control.Template">
  137. <Setter.Value>
  138. <ControlTemplate TargetType="{x:Type ButtonBase}">
  139. <Border
  140. Name="border"
  141. Background="{TemplateBinding Panel.Background}"
  142. BorderBrush="{TemplateBinding Border.BorderBrush}"
  143. BorderThickness="{TemplateBinding Border.BorderThickness}"
  144. SnapsToDevicePixels="True">
  145. <ContentPresenter
  146. Name="contentPresenter"
  147. Margin="{TemplateBinding Control.Padding}"
  148. HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}"
  149. VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}"
  150. Content="{TemplateBinding ContentControl.Content}"
  151. ContentStringFormat="{TemplateBinding ContentControl.ContentStringFormat}"
  152. ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}"
  153. Focusable="False"
  154. RecognizesAccessKey="True"
  155. SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}" />
  156. </Border>
  157. <ControlTemplate.Triggers>
  158. <Trigger Property="Button.IsDefaulted" Value="True">
  159. <Setter TargetName="border" Property="Border.BorderBrush" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" />
  160. </Trigger>
  161. <Trigger Property="UIElement.IsMouseOver" Value="True">
  162. <Setter TargetName="border" Property="Panel.Background" Value="#1A000000" />
  163. <Setter TargetName="border" Property="Border.BorderBrush" Value="#3C7FB1" />
  164. </Trigger>
  165. <Trigger Property="ButtonBase.IsPressed" Value="True">
  166. <Setter TargetName="border" Property="Panel.Background" Value="#26000000" />
  167. <Setter TargetName="border" Property="Border.BorderBrush" Value="#2C628B" />
  168. </Trigger>
  169. <Trigger Property="ToggleButton.IsChecked" Value="True">
  170. <Setter TargetName="border" Property="Panel.Background" Value="#4982E6" />
  171. <Setter TargetName="border" Property="Border.BorderBrush" Value="#245A83" />
  172. <Setter Property="Foreground" Value="#FFFFFF" />
  173. </Trigger>
  174. <Trigger Property="UIElement.IsEnabled" Value="False">
  175. <Setter TargetName="border" Property="Panel.Background" Value="White" />
  176. <Setter TargetName="border" Property="Border.BorderBrush" Value="#ADB2B5" />
  177. <Setter Property="TextElement.Foreground" Value="#838383" />
  178. </Trigger>
  179. <Trigger Property="ToggleButton.IsEnabled" Value="False">
  180. <Setter TargetName="border" Property="Panel.Background" Value="#3AADB2B5" />
  181. <Setter TargetName="border" Property="Border.BorderBrush" Value="#ADB2B5" />
  182. <Setter Property="TextElement.Foreground" Value="#838383" />
  183. </Trigger>
  184. </ControlTemplate.Triggers>
  185. </ControlTemplate>
  186. </Setter.Value>
  187. </Setter>
  188. </Style>
  189. </Style.BasedOn>
  190. </Style>
  191. <Style x:Key="ToggleButtonSwitchStyle" TargetType="{x:Type ToggleButton}">
  192. <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
  193. <Setter Property="Background" Value="{StaticResource Button.Static.Background}"/>
  194. <Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/>
  195. <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
  196. <Setter Property="BorderThickness" Value="1"/>
  197. <Setter Property="HorizontalContentAlignment" Value="Center"/>
  198. <Setter Property="VerticalContentAlignment" Value="Center"/>
  199. <Setter Property="Padding" Value="1"/>
  200. <Setter Property="Template">
  201. <Setter.Value>
  202. <ControlTemplate TargetType="{x:Type ToggleButton}">
  203. <Border x:Name="border"
  204. Background="{TemplateBinding Background}"
  205. BorderBrush="{TemplateBinding BorderBrush}"
  206. BorderThickness="{TemplateBinding BorderThickness}"
  207. SnapsToDevicePixels="true">
  208. <Grid>
  209. <Path x:Name="uncheckRound" Stroke="#99000000" StrokeThickness="2">
  210. <Path.Data>
  211. <GeometryGroup >
  212. <RectangleGeometry Rect="0,0,38,18" RadiusX="10" RadiusY="10"></RectangleGeometry>
  213. </GeometryGroup>
  214. </Path.Data>
  215. </Path>
  216. <Path x:Name="uncheckCircle" Fill="#99000000">
  217. <Path.Data>
  218. <GeometryGroup >
  219. <EllipseGeometry RadiusX="6" RadiusY="6" Center="11,9"></EllipseGeometry>
  220. </GeometryGroup>
  221. </Path.Data>
  222. </Path>
  223. <Path x:Name="checkCircle" Fill="White" Visibility="Collapsed">
  224. <Path.Data>
  225. <GeometryGroup >
  226. <EllipseGeometry RadiusX="6" RadiusY="6" Center="27,9"></EllipseGeometry>
  227. </GeometryGroup>
  228. </Path.Data>
  229. </Path>
  230. <ContentPresenter x:Name="contentPresenter"
  231. Focusable="False"
  232. HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
  233. Margin="{TemplateBinding Padding}"
  234. RecognizesAccessKey="True"
  235. SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
  236. VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
  237. </Grid>
  238. </Border>
  239. <ControlTemplate.Triggers>
  240. <Trigger Property="Button.IsDefaulted" Value="true">
  241. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
  242. </Trigger>
  243. <Trigger Property="IsMouseOver" Value="true">
  244. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  245. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
  246. </Trigger>
  247. <Trigger Property="IsPressed" Value="true">
  248. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  249. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
  250. </Trigger>
  251. <Trigger Property="IsEnabled" Value="false">
  252. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background}"/>
  253. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/>
  254. <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"/>
  255. </Trigger>
  256. <Trigger Property="IsChecked" Value="True">
  257. <Setter Property="Fill" TargetName="uncheckRound" Value="#1460F3"></Setter>
  258. <Setter Property="Visibility" TargetName="uncheckCircle" Value="Collapsed"></Setter>
  259. <Setter Property="Visibility" TargetName="checkCircle" Value="Visible"></Setter>
  260. <Setter Property="Stroke" TargetName="uncheckRound" Value="#1460F3"></Setter>
  261. </Trigger>
  262. </ControlTemplate.Triggers>
  263. </ControlTemplate>
  264. </Setter.Value>
  265. </Setter>
  266. </Style>
  267. <Style x:Key="RoundMarginToggleButtonStyle" TargetType="{x:Type ToggleButton}">
  268. <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
  269. <Setter Property="Background" Value="{StaticResource Button.Static.Background}"/>
  270. <Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/>
  271. <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
  272. <Setter Property="BorderThickness" Value="1"/>
  273. <Setter Property="HorizontalContentAlignment" Value="Center"/>
  274. <Setter Property="VerticalContentAlignment" Value="Center"/>
  275. <Setter Property="Padding" Value="1"/>
  276. <Setter Property="Template">
  277. <Setter.Value>
  278. <ControlTemplate TargetType="{x:Type ToggleButton}">
  279. <Border x:Name="border" CornerRadius="5" Margin="0,5"
  280. Background="{TemplateBinding Background}"
  281. BorderBrush="{TemplateBinding BorderBrush}"
  282. BorderThickness="{TemplateBinding BorderThickness}"
  283. SnapsToDevicePixels="true">
  284. <ContentPresenter x:Name="contentPresenter"
  285. Focusable="False"
  286. HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
  287. Margin="{TemplateBinding Padding}"
  288. RecognizesAccessKey="True"
  289. SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
  290. VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
  291. </Border>
  292. <ControlTemplate.Triggers>
  293. <Trigger Property="Button.IsDefaulted" Value="true">
  294. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
  295. </Trigger>
  296. <Trigger Property="IsMouseOver" Value="true">
  297. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  298. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
  299. </Trigger>
  300. <Trigger Property="IsPressed" Value="true">
  301. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  302. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
  303. </Trigger>
  304. <Trigger Property="IsEnabled" Value="false">
  305. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background}"/>
  306. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/>
  307. <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"/>
  308. </Trigger>
  309. <Trigger Property="IsChecked" Value="True">
  310. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  311. </Trigger>
  312. </ControlTemplate.Triggers>
  313. </ControlTemplate>
  314. </Setter.Value>
  315. </Setter>
  316. </Style>
  317. </ResourceDictionary>