RepeatButtonBaseStyle.xaml 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. <Style x:Key="RepeatButtonBaseStyle" BasedOn="{StaticResource ButtonBaseBaseStyle}" TargetType="RepeatButton">
  5. <Setter Property="BorderThickness" Value="1"/>
  6. <Setter Property="Background" Value="{DynamicResource RegionBrush}"/>
  7. <Setter Property="hc:BorderElement.CornerRadius" Value="{StaticResource DefaultCornerRadius}"/>
  8. <Setter Property="Template">
  9. <Setter.Value>
  10. <ControlTemplate TargetType="RepeatButton">
  11. <hc:SimplePanel>
  12. <Border Background="{TemplateBinding Background}" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}"/>
  13. <Border BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}">
  14. <StackPanel Orientation="Horizontal" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="{TemplateBinding Padding}">
  15. <Path x:Name="PathMain" Width="{TemplateBinding hc:IconElement.Width}" Height="{TemplateBinding hc:IconElement.Height}" Fill="{TemplateBinding Foreground}" SnapsToDevicePixels="True" Stretch="Uniform" Data="{TemplateBinding hc:IconElement.Geometry}"/>
  16. <ContentPresenter x:Name="ContentPresenterMain" RecognizesAccessKey="True" VerticalAlignment="Center" Margin="6,0,0,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
  17. </StackPanel>
  18. </Border>
  19. </hc:SimplePanel>
  20. <ControlTemplate.Triggers>
  21. <Trigger Property="Content" Value="{x:Null}">
  22. <Setter Property="Visibility" Value="Collapsed" TargetName="ContentPresenterMain"/>
  23. </Trigger>
  24. <Trigger Property="hc:IconElement.Geometry" Value="{x:Null}">
  25. <Setter Property="Visibility" Value="Collapsed" TargetName="PathMain"/>
  26. <Setter Property="Margin" Value="0" TargetName="ContentPresenterMain"/>
  27. </Trigger>
  28. </ControlTemplate.Triggers>
  29. </ControlTemplate>
  30. </Setter.Value>
  31. </Setter>
  32. <Style.Triggers>
  33. <Trigger Property="IsMouseOver" Value="True">
  34. <Setter Property="Opacity" Value=".9"/>
  35. </Trigger>
  36. <Trigger Property="IsPressed" Value="True">
  37. <Setter Property="Opacity" Value=".6"/>
  38. </Trigger>
  39. <Trigger Property="IsEnabled" Value="False">
  40. <Setter Property="Opacity" Value="0.4"/>
  41. </Trigger>
  42. </Style.Triggers>
  43. </Style>
  44. <Style x:Key="RepeatButtonDashedBaseStyle" BasedOn="{StaticResource RepeatButtonBaseStyle}" TargetType="RepeatButton">
  45. <Setter Property="BorderThickness" Value="1"/>
  46. <Setter Property="Background" Value="Transparent"/>
  47. <Setter Property="Template">
  48. <Setter.Value>
  49. <ControlTemplate TargetType="RepeatButton">
  50. <hc:DashedBorder BorderDashArray="3,2" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Background="Transparent" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}">
  51. <StackPanel Orientation="Horizontal" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="{TemplateBinding Padding}">
  52. <Path x:Name="PathMain" Width="{TemplateBinding hc:IconElement.Width}" Height="{TemplateBinding hc:IconElement.Height}" Fill="{TemplateBinding Foreground}" SnapsToDevicePixels="True" Stretch="Uniform" Data="{TemplateBinding hc:IconElement.Geometry}"/>
  53. <ContentPresenter x:Name="ContentPresenterMain" RecognizesAccessKey="True" VerticalAlignment="Center" Margin="6,0,0,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
  54. </StackPanel>
  55. </hc:DashedBorder>
  56. <ControlTemplate.Triggers>
  57. <Trigger Property="Content" Value="{x:Null}">
  58. <Setter Property="Visibility" Value="Collapsed" TargetName="ContentPresenterMain"/>
  59. </Trigger>
  60. <Trigger Property="hc:IconElement.Geometry" Value="{x:Null}">
  61. <Setter Property="Visibility" Value="Collapsed" TargetName="PathMain"/>
  62. <Setter Property="Margin" Value="0" TargetName="ContentPresenterMain"/>
  63. </Trigger>
  64. </ControlTemplate.Triggers>
  65. </ControlTemplate>
  66. </Setter.Value>
  67. </Setter>
  68. </Style>
  69. </ResourceDictionary>