ToolStripDropDownButton.xaml 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <local:DropDownButtonBase Style="{DynamicResource ButtonStyle1}" x:Class="CustomControls.ToolStripDropDownButton"
  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. <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.Arrow.Background" Color="#FF404040"/>
  11. <Style x:Key="ButtonStyle1" TargetType="{x:Type local:DropDownButtonBase}">
  12. <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
  13. <Setter Property="Background" Value="{DynamicResource Button.Static.Background}"/>
  14. <Setter Property="BorderBrush" Value="{DynamicResource Button.Static.Border}"/>
  15. <Setter Property="BorderThickness" Value="1"/>
  16. <Setter Property="HorizontalContentAlignment" Value="Center"/>
  17. <Setter Property="VerticalContentAlignment" Value="Center"/>
  18. <Setter Property="Padding" Value="1"/>
  19. <Setter Property="Template">
  20. <Setter.Value>
  21. <ControlTemplate TargetType="{x:Type local:ToolStripDropDownButton}">
  22. <Border x:Name="border" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
  23. <DockPanel x:Name="panel1" LastChildFill="True" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
  24. <Image x:Name="image" Source="{TemplateBinding Image}" Width="{TemplateBinding ImageWidth}" Height="{TemplateBinding ImageHeight}" Margin="0,1,0,0" DockPanel.Dock="Left"/>
  25. <TextBlock x:Name="text" Text="{TemplateBinding Text}" Margin="4,0,4,0" TextWrapping="Wrap" DockPanel.Dock="Left"/>
  26. <Path x:Name="arrow" Margin="6,1,2,0" Fill="{DynamicResource Button.Arrow.Background}" Data="M 0 0 L 3 3 L 6 0 Z" HorizontalAlignment="Left" VerticalAlignment="Center"/>
  27. </DockPanel>
  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="DockPanel.Dock" TargetName="image" Value="Top"/>
  36. <Setter Property="DockPanel.Dock" TargetName="text" Value="Top"/>
  37. <Setter Property="TextAlignment" TargetName="text" Value="Center"/>
  38. <Setter Property="Data" TargetName="arrow" Value="M0,0 L4,4 L8,0"/>
  39. <Setter Property="Fill" TargetName="arrow" Value="{x:Null}"/>
  40. <Setter Property="Stroke" TargetName="arrow" Value="{DynamicResource Button.Arrow.Background}"/>
  41. <Setter Property="Margin" TargetName="arrow" Value="0,0,0,4"/>
  42. <Setter Property="HorizontalAlignment" TargetName="arrow" Value="Center"/>
  43. <Setter Property="VerticalAlignment" TargetName="arrow" Value="Bottom"/>
  44. </Trigger>
  45. <Trigger Property="IsDropDownOpen" Value="true">
  46. <Setter Property="Background" TargetName="border" Value="{DynamicResource Button.MouseOver.Background}"/>
  47. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource Button.MouseOver.Border}"/>
  48. </Trigger>
  49. <Trigger Property="IsEnabled" Value="false">
  50. <Setter Property="Opacity" TargetName="image" Value="0.3" />
  51. <Setter Property="Opacity" TargetName="text" Value="0.5" />
  52. <Setter Property="Opacity" TargetName="arrow" Value="0.5" />
  53. </Trigger>
  54. <Trigger Property="Image" Value="{x:Null}">
  55. <Setter Property="Visibility" TargetName="image" Value="Collapsed"/>
  56. </Trigger>
  57. <Trigger Property="Text" Value="">
  58. <Setter Property="Visibility" TargetName="text" Value="Collapsed"/>
  59. </Trigger>
  60. <Trigger Property="ShowDropDownArrow" Value="False">
  61. <Setter Property="Visibility" TargetName="arrow" Value="Collapsed"/>
  62. </Trigger>
  63. </ControlTemplate.Triggers>
  64. </ControlTemplate>
  65. </Setter.Value>
  66. </Setter>
  67. </Style>
  68. </Button.Resources>
  69. </local:DropDownButtonBase>