Button.xaml 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <local:ButtonBase Style="{DynamicResource ButtonStyle1}" x:Class="CustomControls.Button"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:local="clr-namespace:CustomControls">
  5. <Button.Resources>
  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. <SolidColorBrush x:Key="Button.Static.Background" Color="#FFDDDDDD"/>
  16. <SolidColorBrush x:Key="Button.Static.Border" Color="#FF707070"/>
  17. <SolidColorBrush x:Key="Button.MouseOver.Background" Color="#FFBEE6FD"/>
  18. <SolidColorBrush x:Key="Button.MouseOver.Border" Color="#FF3C7FB1"/>
  19. <SolidColorBrush x:Key="Button.Pressed.Background" Color="#FFC4E5F6"/>
  20. <SolidColorBrush x:Key="Button.Pressed.Border" Color="#FF2C628B"/>
  21. <SolidColorBrush x:Key="Button.Disabled.Background" Color="#FFF4F4F4"/>
  22. <SolidColorBrush x:Key="Button.Disabled.Border" Color="#FFADB2B5"/>
  23. <SolidColorBrush x:Key="Button.Disabled.Foreground" Color="#FF838383"/>
  24. <Style x:Key="ButtonStyle1" TargetType="{x:Type Button}">
  25. <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
  26. <Setter Property="Background" Value="{StaticResource Button.Static.Background}"/>
  27. <Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/>
  28. <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
  29. <Setter Property="BorderThickness" Value="1"/>
  30. <Setter Property="HorizontalContentAlignment" Value="Center"/>
  31. <Setter Property="VerticalContentAlignment" Value="Center"/>
  32. <Setter Property="Padding" Value="1"/>
  33. <Setter Property="Template">
  34. <Setter.Value>
  35. <ControlTemplate TargetType="{x:Type local:ButtonBase}">
  36. <Grid>
  37. <Border x:Name="border" Margin="1" CornerRadius="2" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
  38. <StackPanel Orientation="Horizontal" Margin="{TemplateBinding Padding}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
  39. <Image x:Name="image" Source="{TemplateBinding Image}" Width="16" Height="16" Margin="1,1,0,0" VerticalAlignment="Center"/>
  40. <TextBlock x:Name="text" Text="{TemplateBinding Text}" Margin="4,0,4,0" TextWrapping="Wrap" VerticalAlignment="Center" TextAlignment="Center" MaxWidth="{TemplateBinding Width}"/>
  41. </StackPanel>
  42. </Border>
  43. <Image x:Name="backImage" Source="{TemplateBinding BackgroundImage}" HorizontalAlignment="Left" VerticalAlignment="Top" Stretch="None"/>
  44. </Grid>
  45. <ControlTemplate.Triggers>
  46. <Trigger Property="IsDefaulted" Value="true">
  47. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
  48. </Trigger>
  49. <Trigger Property="IsMouseOver" Value="true">
  50. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.MouseOver.Background}"/>
  51. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.MouseOver.Border}"/>
  52. </Trigger>
  53. <Trigger Property="IsPressed" Value="true">
  54. <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
  55. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
  56. </Trigger>
  57. <Trigger Property="IsEnabled" Value="false">
  58. <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/>
  59. <Setter Property="Foreground" TargetName="text" Value="{StaticResource Button.Disabled.Foreground}"/>
  60. <Setter Property="Opacity" TargetName="image" Value="0.3" />
  61. </Trigger>
  62. <Trigger Property="Image" Value="{x:Null}">
  63. <Setter Property="Visibility" TargetName="image" Value="Collapsed"/>
  64. </Trigger>
  65. <Trigger Property="Text" Value="">
  66. <Setter Property="Visibility" TargetName="text" Value="Collapsed"/>
  67. </Trigger>
  68. <Trigger Property="IsFlat" Value="true">
  69. <Setter Property="Margin" TargetName="border" Value="0"/>
  70. <Setter Property="CornerRadius" TargetName="border" Value="0"/>
  71. </Trigger>
  72. </ControlTemplate.Triggers>
  73. </ControlTemplate>
  74. </Setter.Value>
  75. </Setter>
  76. </Style>
  77. </Button.Resources>
  78. </local:ButtonBase>