ToolStripButton.xaml 4.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <local:ToggleButtonBase Style="{DynamicResource ToggleButtonStyle1}" x:Class="CustomControls.ToolStripButton"
  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. <ToggleButton.Resources>
  6. <SolidColorBrush x:Key="Button.Static.Background" Color="Transparent"/>
  7. <SolidColorBrush x:Key="Button.Static.Border" Color="Transparent"/>
  8. <SolidColorBrush x:Key="Button.MouseOver.Background" Color="#FFBEE6FD"/>
  9. <SolidColorBrush x:Key="Button.MouseOver.Border" Color="#FF3C7FB1"/>
  10. <SolidColorBrush x:Key="Button.Checked.Background" Color="#FFC4E5F6"/>
  11. <SolidColorBrush x:Key="Button.Checked.Border" Color="#FF2C628B"/>
  12. <Style x:Key="ToggleButtonStyle1" TargetType="{x:Type local:ToggleButtonBase}">
  13. <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
  14. <Setter Property="Background" Value="{DynamicResource Button.Static.Background}"/>
  15. <Setter Property="BorderBrush" Value="{DynamicResource Button.Static.Border}"/>
  16. <Setter Property="BorderThickness" Value="1"/>
  17. <Setter Property="HorizontalContentAlignment" Value="Center"/>
  18. <Setter Property="VerticalContentAlignment" Value="Center"/>
  19. <Setter Property="Padding" Value="1"/>
  20. <Setter Property="Template">
  21. <Setter.Value>
  22. <ControlTemplate TargetType="{x:Type local:ToolStripButton}">
  23. <Border x:Name="border" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
  24. <StackPanel x:Name="panel1" Orientation="Horizontal" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
  25. <Image x:Name="image" Source="{TemplateBinding Image}" Width="{TemplateBinding ImageWidth}" Height="{TemplateBinding ImageHeight}" Margin="1,1,1,0"/>
  26. <TextBlock x:Name="text" Text="{TemplateBinding Text}" Margin="4,0,4,0" TextWrapping="Wrap"/>
  27. </StackPanel>
  28. </Border>
  29. <ControlTemplate.Triggers>
  30. <Trigger Property="IsMouseOver" Value="true">
  31. <Setter Property="Background" TargetName="border" Value="{DynamicResource Button.MouseOver.Background}"/>
  32. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource Button.MouseOver.Border}"/>
  33. </Trigger>
  34. <Trigger Property="IsVertical" Value="true">
  35. <Setter Property="Orientation" TargetName="panel1" Value="Vertical"/>
  36. <Setter Property="TextAlignment" TargetName="text" Value="Center"/>
  37. </Trigger>
  38. <Trigger Property="IsChecked" Value="true">
  39. <Setter Property="Background" TargetName="border" Value="{DynamicResource Button.Checked.Background}"/>
  40. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource Button.Checked.Border}"/>
  41. </Trigger>
  42. <Trigger Property="IsEnabled" Value="false">
  43. <Setter Property="Opacity" TargetName="image" Value="0.3" />
  44. <Setter Property="Opacity" TargetName="text" Value="0.5" />
  45. </Trigger>
  46. <Trigger Property="Image" Value="{x:Null}">
  47. <Setter Property="Visibility" TargetName="image" Value="Collapsed"/>
  48. </Trigger>
  49. <Trigger Property="Text" Value="">
  50. <Setter Property="Visibility" TargetName="text" Value="Collapsed"/>
  51. </Trigger>
  52. </ControlTemplate.Triggers>
  53. </ControlTemplate>
  54. </Setter.Value>
  55. </Setter>
  56. </Style>
  57. </ToggleButton.Resources>
  58. </local:ToggleButtonBase>