ToggleButton.xaml 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459
  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:hc="clr-namespace:HandyControl.Controls">
  4. <!--普通-->
  5. <Style x:Key="ToggleButtonDefault" BasedOn="{StaticResource ToggleButtonBaseStyle}" TargetType="ToggleButton">
  6. <Setter Property="Background" Value="{DynamicResource RegionBrush}"/>
  7. <Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
  8. <Style.Triggers>
  9. <Trigger Property="IsMouseOver" Value="True">
  10. <Setter Property="Background" Value="{DynamicResource SecondaryRegionBrush}"/>
  11. </Trigger>
  12. <Trigger Property="IsPressed" Value="True">
  13. <Setter Property="Background" Value="{DynamicResource BorderBrush}"/>
  14. </Trigger>
  15. </Style.Triggers>
  16. </Style>
  17. <Style x:Key="ToggleButtonDefault.Small" BasedOn="{StaticResource ToggleButtonDefault}" TargetType="ToggleButton">
  18. <Setter Property="Height" Value="20"/>
  19. <Setter Property="Padding" Value="6,1"/>
  20. <Setter Property="hc:IconElement.Height" Value="12"/>
  21. </Style>
  22. <Style BasedOn="{StaticResource ToggleButtonDefault}" TargetType="ToggleButton"/>
  23. <Style x:Key="ToggleButtonPrimary" BasedOn="{StaticResource ToggleButtonBaseStyle}" TargetType="ToggleButton">
  24. <Setter Property="Background" Value="{DynamicResource PrimaryBrush}"/>
  25. <Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}"/>
  26. </Style>
  27. <Style x:Key="ToggleButtonPrimary.Small" BasedOn="{StaticResource ToggleButtonPrimary}" TargetType="ToggleButton">
  28. <Setter Property="Height" Value="20"/>
  29. <Setter Property="Padding" Value="6,1"/>
  30. <Setter Property="hc:IconElement.Height" Value="12"/>
  31. </Style>
  32. <Style x:Key="ToggleButtonSuccess" BasedOn="{StaticResource ToggleButtonBaseStyle}" TargetType="ToggleButton">
  33. <Setter Property="Background" Value="{DynamicResource SuccessBrush}"/>
  34. <Setter Property="BorderBrush" Value="{DynamicResource SuccessBrush}"/>
  35. </Style>
  36. <Style x:Key="ToggleButtonSuccess.Small" BasedOn="{StaticResource ToggleButtonSuccess}" TargetType="ToggleButton">
  37. <Setter Property="Height" Value="20"/>
  38. <Setter Property="Padding" Value="6,1"/>
  39. <Setter Property="hc:IconElement.Height" Value="12"/>
  40. </Style>
  41. <Style x:Key="ToggleButtonInfo" BasedOn="{StaticResource ToggleButtonBaseStyle}" TargetType="ToggleButton">
  42. <Setter Property="Background" Value="{DynamicResource InfoBrush}"/>
  43. <Setter Property="BorderBrush" Value="{DynamicResource InfoBrush}"/>
  44. </Style>
  45. <Style x:Key="ToggleButtonInfo.Small" BasedOn="{StaticResource ToggleButtonInfo}" TargetType="ToggleButton">
  46. <Setter Property="Height" Value="20"/>
  47. <Setter Property="Padding" Value="6,1"/>
  48. <Setter Property="hc:IconElement.Height" Value="12"/>
  49. </Style>
  50. <Style x:Key="ToggleButtonWarning" BasedOn="{StaticResource ToggleButtonBaseStyle}" TargetType="ToggleButton">
  51. <Setter Property="Background" Value="{DynamicResource WarningBrush}"/>
  52. <Setter Property="BorderBrush" Value="{DynamicResource WarningBrush}"/>
  53. </Style>
  54. <Style x:Key="ToggleButtonWarning.Small" BasedOn="{StaticResource ToggleButtonWarning}" TargetType="ToggleButton">
  55. <Setter Property="Height" Value="20"/>
  56. <Setter Property="Padding" Value="6,1"/>
  57. <Setter Property="hc:IconElement.Height" Value="12"/>
  58. </Style>
  59. <Style x:Key="ToggleButtonDanger" BasedOn="{StaticResource ToggleButtonBaseStyle}" TargetType="ToggleButton">
  60. <Setter Property="Background" Value="{DynamicResource DangerBrush}"/>
  61. <Setter Property="BorderBrush" Value="{DynamicResource DangerBrush}"/>
  62. </Style>
  63. <Style x:Key="ToggleButtonDanger.Small" BasedOn="{StaticResource ToggleButtonDanger}" TargetType="ToggleButton">
  64. <Setter Property="Height" Value="20"/>
  65. <Setter Property="Padding" Value="6,1"/>
  66. <Setter Property="hc:IconElement.Height" Value="12"/>
  67. </Style>
  68. <!--图标-->
  69. <Style x:Key="ToggleButtonIcon" BasedOn="{StaticResource ToggleButtonIconBaseStyle}" TargetType="ToggleButton">
  70. <Setter Property="Background" Value="{DynamicResource RegionBrush}"/>
  71. <Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
  72. <Style.Triggers>
  73. <Trigger Property="IsMouseOver" Value="True">
  74. <Setter Property="Background" Value="{DynamicResource SecondaryRegionBrush}"/>
  75. </Trigger>
  76. <Trigger Property="IsPressed" Value="True">
  77. <Setter Property="Background" Value="{DynamicResource BorderBrush}"/>
  78. </Trigger>
  79. </Style.Triggers>
  80. </Style>
  81. <Style x:Key="ToggleButtonIcon.Small" BasedOn="{StaticResource ToggleButtonIcon}" TargetType="ToggleButton">
  82. <Setter Property="Height" Value="20"/>
  83. <Setter Property="Padding" Value="6,1"/>
  84. <Setter Property="hc:IconElement.Height" Value="12"/>
  85. </Style>
  86. <Style x:Key="ToggleButtonIconPrimary" BasedOn="{StaticResource ToggleButtonIconBaseStyle}" TargetType="ToggleButton">
  87. <Setter Property="Background" Value="{DynamicResource PrimaryBrush}"/>
  88. <Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}"/>
  89. </Style>
  90. <Style x:Key="ToggleButtonIconPrimary.Small" BasedOn="{StaticResource ToggleButtonIconPrimary}" TargetType="ToggleButton">
  91. <Setter Property="Height" Value="20"/>
  92. <Setter Property="Padding" Value="6,1"/>
  93. <Setter Property="hc:IconElement.Height" Value="12"/>
  94. </Style>
  95. <Style x:Key="ToggleButtonIconSuccess" BasedOn="{StaticResource ToggleButtonIconBaseStyle}" TargetType="ToggleButton">
  96. <Setter Property="Background" Value="{DynamicResource SuccessBrush}"/>
  97. <Setter Property="BorderBrush" Value="{DynamicResource SuccessBrush}"/>
  98. </Style>
  99. <Style x:Key="ToggleButtonIconSuccess.Small" BasedOn="{StaticResource ToggleButtonIconSuccess}" TargetType="ToggleButton">
  100. <Setter Property="Height" Value="20"/>
  101. <Setter Property="Padding" Value="6,1"/>
  102. <Setter Property="hc:IconElement.Height" Value="12"/>
  103. </Style>
  104. <Style x:Key="ToggleButtonIconInfo" BasedOn="{StaticResource ToggleButtonIconBaseStyle}" TargetType="ToggleButton">
  105. <Setter Property="Background" Value="{DynamicResource InfoBrush}"/>
  106. <Setter Property="BorderBrush" Value="{DynamicResource InfoBrush}"/>
  107. </Style>
  108. <Style x:Key="ToggleButtonIconInfo.Small" BasedOn="{StaticResource ToggleButtonIconInfo}" TargetType="ToggleButton">
  109. <Setter Property="Height" Value="20"/>
  110. <Setter Property="Padding" Value="6,1"/>
  111. <Setter Property="hc:IconElement.Height" Value="12"/>
  112. </Style>
  113. <Style x:Key="ToggleButtonIconWarning" BasedOn="{StaticResource ToggleButtonIconBaseStyle}" TargetType="ToggleButton">
  114. <Setter Property="Background" Value="{DynamicResource WarningBrush}"/>
  115. <Setter Property="BorderBrush" Value="{DynamicResource WarningBrush}"/>
  116. </Style>
  117. <Style x:Key="ToggleButtonIconWarning.Small" BasedOn="{StaticResource ToggleButtonIconWarning}" TargetType="ToggleButton">
  118. <Setter Property="Height" Value="20"/>
  119. <Setter Property="Padding" Value="6,1"/>
  120. <Setter Property="hc:IconElement.Height" Value="12"/>
  121. </Style>
  122. <Style x:Key="ToggleButtonIconDanger" BasedOn="{StaticResource ToggleButtonIconBaseStyle}" TargetType="ToggleButton">
  123. <Setter Property="Background" Value="{DynamicResource DangerBrush}"/>
  124. <Setter Property="BorderBrush" Value="{DynamicResource DangerBrush}"/>
  125. </Style>
  126. <Style x:Key="ToggleButtonIconDanger.Small" BasedOn="{StaticResource ToggleButtonIconDanger}" TargetType="ToggleButton">
  127. <Setter Property="Height" Value="20"/>
  128. <Setter Property="Padding" Value="6,1"/>
  129. <Setter Property="hc:IconElement.Height" Value="12"/>
  130. </Style>
  131. <Style x:Key="ToggleButtonIconTransparent" BasedOn="{StaticResource ToggleButtonIconBaseStyle}" TargetType="ToggleButton">
  132. <Setter Property="Background" Value="Transparent"/>
  133. <Setter Property="BorderBrush" Value="Transparent"/>
  134. <Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
  135. <Setter Property="Template">
  136. <Setter.Value>
  137. <ControlTemplate TargetType="ToggleButton">
  138. <Border Background="{TemplateBinding Background}" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}">
  139. <ContentControl Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}">
  140. <Path x:Name="PathIcon" Width="{TemplateBinding hc:IconElement.Width}" Height="{TemplateBinding hc:IconElement.Height}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Fill="{TemplateBinding Foreground}" SnapsToDevicePixels="True" Stretch="Uniform" Data="{TemplateBinding hc:IconSwitchElement.Geometry}"/>
  141. </ContentControl>
  142. </Border>
  143. <ControlTemplate.Triggers>
  144. <Trigger Property="IsChecked" Value="True">
  145. <Setter TargetName="PathIcon" Property="Data" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(hc:IconSwitchElement.GeometrySelected)}"/>
  146. </Trigger>
  147. </ControlTemplate.Triggers>
  148. </ControlTemplate>
  149. </Setter.Value>
  150. </Setter>
  151. </Style>
  152. <Style x:Key="ToggleButtonIconTransparent.Small" BasedOn="{StaticResource ToggleButtonIconTransparent}" TargetType="ToggleButton">
  153. <Setter Property="Height" Value="20"/>
  154. <Setter Property="Padding" Value="6,1"/>
  155. <Setter Property="hc:IconElement.Height" Value="12"/>
  156. </Style>
  157. <!--开关-->
  158. <Style x:Key="ToggleButtonSwitch" BasedOn="{StaticResource ToggleButtonSwitchBaseStyle}" TargetType="ToggleButton"/>
  159. <Style x:Key="ToggleButtonSwitch.Small" BasedOn="{StaticResource ToggleButtonSwitch}" TargetType="ToggleButton">
  160. <Setter Property="Height" Value="16"/>
  161. </Style>
  162. <!--翻转-->
  163. <Style x:Key="ToggleButtonFlip" BasedOn="{StaticResource BaseStyle}" TargetType="ToggleButton">
  164. <Setter Property="Background" Value="{DynamicResource RegionBrush}"/>
  165. <Setter Property="HorizontalAlignment" Value="Center"/>
  166. <Setter Property="VerticalAlignment" Value="Center"/>
  167. <Setter Property="Padding" Value="0"/>
  168. <Setter Property="BorderThickness" Value="1"/>
  169. <Setter Property="Height" Value="{StaticResource DefaultControlHeight}"/>
  170. <Setter Property="Width" Value="{StaticResource DefaultControlHeight}"/>
  171. <Setter Property="Template">
  172. <Setter.Value>
  173. <ControlTemplate TargetType="ToggleButton">
  174. <ControlTemplate.Resources>
  175. <Storyboard x:Key="StoryboardChecked">
  176. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" Storyboard.TargetName="CheckedElement">
  177. <EasingDoubleKeyFrame KeyTime="0:0:0.2" Value="1">
  178. <EasingDoubleKeyFrame.EasingFunction>
  179. <PowerEase EasingMode="EaseOut"/>
  180. </EasingDoubleKeyFrame.EasingFunction>
  181. </EasingDoubleKeyFrame>
  182. </DoubleAnimationUsingKeyFrames>
  183. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" Storyboard.TargetName="UnCheckedElement">
  184. <EasingDoubleKeyFrame KeyTime="0:0:0.2" Value="0">
  185. <EasingDoubleKeyFrame.EasingFunction>
  186. <PowerEase EasingMode="EaseOut"/>
  187. </EasingDoubleKeyFrame.EasingFunction>
  188. </EasingDoubleKeyFrame>
  189. </DoubleAnimationUsingKeyFrames>
  190. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="CheckedElement">
  191. <EasingDoubleKeyFrame KeyTime="0:0:0.1" Value="1">
  192. <EasingDoubleKeyFrame.EasingFunction>
  193. <PowerEase EasingMode="EaseOut"/>
  194. </EasingDoubleKeyFrame.EasingFunction>
  195. </EasingDoubleKeyFrame>
  196. </DoubleAnimationUsingKeyFrames>
  197. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="UnCheckedElement">
  198. <EasingDoubleKeyFrame KeyTime="0:0:0.1" Value="0">
  199. <EasingDoubleKeyFrame.EasingFunction>
  200. <PowerEase EasingMode="EaseOut"/>
  201. </EasingDoubleKeyFrame.EasingFunction>
  202. </EasingDoubleKeyFrame>
  203. </DoubleAnimationUsingKeyFrames>
  204. </Storyboard>
  205. <Storyboard x:Key="StoryboardUnChecked">
  206. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" Storyboard.TargetName="CheckedElement">
  207. <EasingDoubleKeyFrame KeyTime="0:0:0.2" Value="0">
  208. <EasingDoubleKeyFrame.EasingFunction>
  209. <PowerEase EasingMode="EaseOut"/>
  210. </EasingDoubleKeyFrame.EasingFunction>
  211. </EasingDoubleKeyFrame>
  212. </DoubleAnimationUsingKeyFrames>
  213. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" Storyboard.TargetName="UnCheckedElement">
  214. <EasingDoubleKeyFrame KeyTime="0:0:0.2" Value="1">
  215. <EasingDoubleKeyFrame.EasingFunction>
  216. <PowerEase EasingMode="EaseOut"/>
  217. </EasingDoubleKeyFrame.EasingFunction>
  218. </EasingDoubleKeyFrame>
  219. </DoubleAnimationUsingKeyFrames>
  220. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="CheckedElement">
  221. <EasingDoubleKeyFrame KeyTime="0:0:0.1" Value="0">
  222. <EasingDoubleKeyFrame.EasingFunction>
  223. <PowerEase EasingMode="EaseOut"/>
  224. </EasingDoubleKeyFrame.EasingFunction>
  225. </EasingDoubleKeyFrame>
  226. </DoubleAnimationUsingKeyFrames>
  227. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="UnCheckedElement">
  228. <EasingDoubleKeyFrame KeyTime="0:0:0.1" Value="1">
  229. <EasingDoubleKeyFrame.EasingFunction>
  230. <PowerEase EasingMode="EaseOut"/>
  231. </EasingDoubleKeyFrame.EasingFunction>
  232. </EasingDoubleKeyFrame>
  233. </DoubleAnimationUsingKeyFrames>
  234. </Storyboard>
  235. </ControlTemplate.Resources>
  236. <Viewbox>
  237. <hc:SimplePanel Height="28" Width="28">
  238. <Border Name="UnCheckedElement" Style="{StaticResource BorderCircularClip}" RenderTransformOrigin="0.5,0.5" SnapsToDevicePixels="true" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}">
  239. <Border.RenderTransform>
  240. <TransformGroup>
  241. <ScaleTransform ScaleX="1"/>
  242. </TransformGroup>
  243. </Border.RenderTransform>
  244. <ContentPresenter Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
  245. </Border>
  246. <Border Name="CheckedElement" Style="{StaticResource BorderCircularClip}" RenderTransformOrigin="0.5,0.5" SnapsToDevicePixels="true" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}">
  247. <Border.RenderTransform>
  248. <TransformGroup>
  249. <ScaleTransform ScaleX="0"/>
  250. </TransformGroup>
  251. </Border.RenderTransform>
  252. <ContentPresenter Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{Binding Path=(hc:StatusSwitchElement.CheckedElement),RelativeSource={RelativeSource TemplatedParent}}"/>
  253. </Border>
  254. </hc:SimplePanel>
  255. </Viewbox>
  256. <ControlTemplate.Triggers>
  257. <Trigger Property="IsMouseOver" Value="True">
  258. <Setter Property="Opacity" Value=".9"/>
  259. </Trigger>
  260. <Trigger Property="IsPressed" Value="True">
  261. <Setter Property="Opacity" Value=".6"/>
  262. </Trigger>
  263. <Trigger Property="IsChecked" Value="true">
  264. <Trigger.EnterActions>
  265. <BeginStoryboard Storyboard="{StaticResource StoryboardChecked}"/>
  266. </Trigger.EnterActions>
  267. <Trigger.ExitActions>
  268. <BeginStoryboard Storyboard="{StaticResource StoryboardUnChecked}"/>
  269. </Trigger.ExitActions>
  270. </Trigger>
  271. <Trigger Property="IsEnabled" Value="False">
  272. <Setter Property="Opacity" Value="0.4"/>
  273. </Trigger>
  274. </ControlTemplate.Triggers>
  275. </ControlTemplate>
  276. </Setter.Value>
  277. </Setter>
  278. </Style>
  279. <Style x:Key="ToggleButtonFlip.Small" BasedOn="{StaticResource ToggleButtonFlip}" TargetType="ToggleButton">
  280. <Setter Property="Height" Value="20"/>
  281. <Setter Property="Width" Value="20"/>
  282. </Style>
  283. <!--自定义-->
  284. <Style x:Key="ToggleButtonCustom" BasedOn="{StaticResource BaseStyle}" TargetType="ToggleButton">
  285. <Setter Property="hc:BorderElement.CornerRadius" Value="0" />
  286. <Setter Property="Background" Value="Transparent"/>
  287. <Setter Property="HorizontalAlignment" Value="Center"/>
  288. <Setter Property="VerticalAlignment" Value="Center"/>
  289. <Setter Property="HorizontalContentAlignment" Value="Center"/>
  290. <Setter Property="VerticalContentAlignment" Value="Center"/>
  291. <Setter Property="Padding" Value="0"/>
  292. <Setter Property="BorderThickness" Value="0"/>
  293. <Setter Property="Template">
  294. <Setter.Value>
  295. <ControlTemplate TargetType="ToggleButton">
  296. <Border x:Name="Chrome" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" SnapsToDevicePixels="true" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}">
  297. <hc:SimplePanel>
  298. <ContentPresenter Name="UnCheckedElement" Margin="{TemplateBinding Padding}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
  299. <ContentPresenter Name="CheckedElement" Margin="{TemplateBinding Padding}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Visibility="Collapsed" Content="{Binding Path=(hc:StatusSwitchElement.CheckedElement),RelativeSource={RelativeSource TemplatedParent}}"/>
  300. </hc:SimplePanel>
  301. </Border>
  302. <ControlTemplate.Triggers>
  303. <Trigger Property="IsMouseOver" Value="True">
  304. <Setter Property="Opacity" Value=".9"/>
  305. </Trigger>
  306. <Trigger Property="IsPressed" Value="True">
  307. <Setter Property="Opacity" Value=".6"/>
  308. </Trigger>
  309. <Trigger Property="IsChecked" Value="True">
  310. <Setter Property="Visibility" Value="Visible" TargetName="CheckedElement"/>
  311. </Trigger>
  312. <MultiTrigger>
  313. <MultiTrigger.Conditions>
  314. <Condition Property="hc:StatusSwitchElement.HideUncheckedElement" Value="True"/>
  315. <Condition Property="IsChecked" Value="True"/>
  316. </MultiTrigger.Conditions>
  317. <Setter Property="Visibility" Value="Collapsed" TargetName="UnCheckedElement"/>
  318. </MultiTrigger>
  319. <Trigger Property="IsEnabled" Value="False">
  320. <Setter Property="Opacity" Value="0.4"/>
  321. </Trigger>
  322. </ControlTemplate.Triggers>
  323. </ControlTemplate>
  324. </Setter.Value>
  325. </Setter>
  326. </Style>
  327. <!--ButtonGroup-->
  328. <Style x:Key="ToggleButtonGroupItemDefault" BasedOn="{StaticResource ToggleButtonGroupItemBaseStyle}" TargetType="ToggleButton"/>
  329. <Style x:Key="ToggleButtonGroupItemHorizontalFirst" BasedOn="{StaticResource ToggleButtonGroupItemBaseStyle}" TargetType="ToggleButton">
  330. <Setter Property="hc:BorderElement.CornerRadius" Value="4,0,0,4"/>
  331. <Setter Property="Margin" Value="0"/>
  332. </Style>
  333. <Style x:Key="ToggleButtonGroupItemHorizontalLast" BasedOn="{StaticResource ToggleButtonGroupItemBaseStyle}" TargetType="ToggleButton">
  334. <Setter Property="hc:BorderElement.CornerRadius" Value="0,4,4,0"/>
  335. </Style>
  336. <Style x:Key="ToggleButtonGroupItemSingle" BasedOn="{StaticResource ToggleButtonGroupItemBaseStyle}" TargetType="ToggleButton">
  337. <Setter Property="hc:BorderElement.CornerRadius" Value="{StaticResource DefaultCornerRadius}"/>
  338. </Style>
  339. <Style x:Key="ToggleButtonGroupItemVerticalFirst" BasedOn="{StaticResource ToggleButtonGroupItemBaseStyle}" TargetType="ToggleButton">
  340. <Setter Property="hc:BorderElement.CornerRadius" Value="4,4,0,0"/>
  341. <Setter Property="Margin" Value="0"/>
  342. </Style>
  343. <Style x:Key="ToggleButtonGroupItemVerticalLast" BasedOn="{StaticResource ToggleButtonGroupItemBaseStyle}" TargetType="ToggleButton">
  344. <Setter Property="hc:BorderElement.CornerRadius" Value="0,0,4,4"/>
  345. </Style>
  346. <!--LoadingButton-->
  347. <Style x:Key="ToggleButtonLoadingPrimary" BasedOn="{StaticResource ToggleButtonBaseStyle}" TargetType="ToggleButton">
  348. <Setter Property="Background" Value="{DynamicResource PrimaryBrush}"/>
  349. <Setter Property="Template">
  350. <Setter.Value>
  351. <ControlTemplate TargetType="ToggleButton">
  352. <Border x:Name="Chrome" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}">
  353. <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
  354. <hc:SimplePanel>
  355. <ContentPresenter Name="UnCheckedElement" Margin="{TemplateBinding Padding}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
  356. <ContentPresenter Name="CheckedElement" Margin="{TemplateBinding Padding}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Visibility="Collapsed" Content="{Binding Path=(hc:StatusSwitchElement.CheckedElement),RelativeSource={RelativeSource TemplatedParent}}"/>
  357. </hc:SimplePanel>
  358. <Viewbox Margin="0,4">
  359. <hc:LoadingCircle x:Name="Loading" Width="22" Height="22" Foreground="{TemplateBinding Foreground}" DotDiameter="3" IsRunning="{TemplateBinding IsChecked}" Visibility="Collapsed"/>
  360. </Viewbox>
  361. </StackPanel>
  362. </Border>
  363. <ControlTemplate.Triggers>
  364. <Trigger Property="IsMouseOver" Value="True">
  365. <Setter Property="Opacity" Value=".9"/>
  366. </Trigger>
  367. <Trigger Property="IsPressed" Value="True">
  368. <Setter Property="Opacity" Value=".6"/>
  369. </Trigger>
  370. <Trigger Property="IsChecked" Value="True">
  371. <Setter Property="Visibility" Value="Visible" TargetName="Loading"/>
  372. <Setter Property="Visibility" Value="Visible" TargetName="CheckedElement"/>
  373. </Trigger>
  374. <MultiTrigger>
  375. <MultiTrigger.Conditions>
  376. <Condition Property="hc:StatusSwitchElement.HideUncheckedElement" Value="True"/>
  377. <Condition Property="IsChecked" Value="True"/>
  378. </MultiTrigger.Conditions>
  379. <Setter Property="Visibility" Value="Collapsed" TargetName="UnCheckedElement"/>
  380. </MultiTrigger>
  381. <Trigger Property="IsEnabled" Value="False">
  382. <Setter Property="Opacity" Value="0.4"/>
  383. </Trigger>
  384. </ControlTemplate.Triggers>
  385. </ControlTemplate>
  386. </Setter.Value>
  387. </Setter>
  388. </Style>
  389. <Style x:Key="ToggleButtonLoading" BasedOn="{StaticResource ToggleButtonLoadingPrimary}" TargetType="ToggleButton">
  390. <Setter Property="Background" Value="{DynamicResource RegionBrush}"/>
  391. <Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
  392. <Setter Property="BorderThickness" Value="1"/>
  393. <Style.Triggers>
  394. <Trigger Property="IsMouseOver" Value="True">
  395. <Setter Property="Background" Value="{DynamicResource SecondaryRegionBrush}"/>
  396. </Trigger>
  397. <Trigger Property="IsPressed" Value="True">
  398. <Setter Property="Background" Value="{DynamicResource BorderBrush}"/>
  399. </Trigger>
  400. </Style.Triggers>
  401. </Style>
  402. <Style x:Key="ToggleButtonLoadingSuccess" BasedOn="{StaticResource ToggleButtonLoadingPrimary}" TargetType="ToggleButton">
  403. <Setter Property="Background" Value="{DynamicResource SuccessBrush}"/>
  404. </Style>
  405. <Style x:Key="ToggleButtonLoadingInfo" BasedOn="{StaticResource ToggleButtonLoadingPrimary}" TargetType="ToggleButton">
  406. <Setter Property="Background" Value="{DynamicResource InfoBrush}"/>
  407. </Style>
  408. <Style x:Key="ToggleButtonLoadingWarning" BasedOn="{StaticResource ToggleButtonLoadingPrimary}" TargetType="ToggleButton">
  409. <Setter Property="Background" Value="{DynamicResource WarningBrush}"/>
  410. </Style>
  411. <Style x:Key="ToggleButtonLoadingDanger" BasedOn="{StaticResource ToggleButtonLoadingPrimary}" TargetType="ToggleButton">
  412. <Setter Property="Background" Value="{DynamicResource DangerBrush}"/>
  413. </Style>
  414. </ResourceDictionary>