Expander.xaml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  3. <Style x:Key="ExpanderHeaderFocusVisual">
  4. <Setter Property="Control.Template">
  5. <Setter.Value>
  6. <ControlTemplate>
  7. <Border>
  8. <Rectangle Margin="0" SnapsToDevicePixels="true" Stroke="Black" StrokeThickness="1" StrokeDashArray="1 2"/>
  9. </Border>
  10. </ControlTemplate>
  11. </Setter.Value>
  12. </Setter>
  13. </Style>
  14. <SolidColorBrush x:Key="Expander_Header_BG" Color="#FF6A82AD"/>
  15. <SolidColorBrush x:Key="Expander_Header_BD" Color="Black"/>
  16. <SolidColorBrush x:Key="Expander_Header_BG_HighLight" Color="#FFD6E4FF"/>
  17. <SolidColorBrush x:Key="Expander_InnerHighlight" Color="#FF9FCDED"/>
  18. <SolidColorBrush x:Key="Expander_InnerShadow" Color="#FF003A62"/>
  19. <SolidColorBrush x:Key="Expander_BG_MouseOver" Color="#FF227BB8"/>
  20. <Style x:Key="ExpanderDownHeaderStyle" TargetType="{x:Type ToggleButton}">
  21. <Setter Property="FontSize" Value="14"/>
  22. <Setter Property="FontFamily" Value="Arial"/>
  23. <Setter Property="Foreground" Value="{DynamicResource FG_Black}"/>
  24. <Setter Property="Template">
  25. <Setter.Value>
  26. <ControlTemplate TargetType="{x:Type ToggleButton}">
  27. <Grid Cursor="Hand" Background="Transparent">
  28. <Grid SnapsToDevicePixels="False" Margin="0,5">
  29. <Grid.ColumnDefinitions>
  30. <ColumnDefinition Width="17"/>
  31. <ColumnDefinition />
  32. </Grid.ColumnDefinitions>
  33. <Border x:Name="OuterBorder" Grid.Column="0" HorizontalAlignment="Right" Height="15" BorderBrush="{DynamicResource Expander_Header_BD}" BorderThickness="1" Background="{DynamicResource Expander_Header_BG}" CornerRadius="2" VerticalAlignment="Center" Width="15">
  34. <Grid>
  35. <Rectangle x:Name="Path1" Fill="White" Height="2" Width="9"/>
  36. <Rectangle x:Name="Path2" Fill="White" Height="9" Width="2"/>
  37. </Grid>
  38. </Border>
  39. <ContentPresenter Grid.Column="1" HorizontalAlignment="Left" Margin="5,0,0,0" RecognizesAccessKey="True" SnapsToDevicePixels="True" VerticalAlignment="Center"/>
  40. </Grid>
  41. </Grid>
  42. <ControlTemplate.Triggers>
  43. <Trigger Property="IsChecked" Value="true">
  44. <Setter Property="Visibility" TargetName="Path2" Value="Collapsed"/>
  45. <Setter Property="Background" TargetName="OuterBorder" Value="{DynamicResource Expander_Header_BG_HighLight}"/>
  46. <Setter Property="Fill" TargetName="Path1" Value="Black"/>
  47. </Trigger>
  48. <Trigger Property="IsMouseOver" Value="true"/>
  49. <Trigger Property="IsPressed" Value="true">
  50. <Setter Property="Background" TargetName="OuterBorder" Value="{DynamicResource Expander_Header_BG_HighLight}"/>
  51. </Trigger>
  52. </ControlTemplate.Triggers>
  53. </ControlTemplate>
  54. </Setter.Value>
  55. </Setter>
  56. </Style>
  57. <Style x:Key="ExpanderRightHeaderStyle" TargetType="{x:Type ToggleButton}">
  58. <Setter Property="FontSize" Value="14"/>
  59. <Setter Property="FontFamily" Value="Arial"/>
  60. <Setter Property="Foreground" Value="{DynamicResource FG_Black}"/>
  61. <Setter Property="Background" Value="{DynamicResource Expander_Header_BG}"/>
  62. <Setter Property="BorderBrush" Value="{DynamicResource Expander_Header_BD}"/>
  63. <Setter Property="Border.CornerRadius" Value="2"/>
  64. <Setter Property="Opacity" Value="1"/>
  65. <Setter Property="Template">
  66. <Setter.Value>
  67. <ControlTemplate TargetType="{x:Type ToggleButton}">
  68. <Grid Cursor="Hand" Background="Transparent">
  69. <Grid.LayoutTransform>
  70. <TransformGroup>
  71. <TransformGroup.Children>
  72. <TransformCollection>
  73. <RotateTransform Angle="-90"/>
  74. </TransformCollection>
  75. </TransformGroup.Children>
  76. </TransformGroup>
  77. </Grid.LayoutTransform>
  78. <Grid SnapsToDevicePixels="False" Margin="0,5">
  79. <Grid.ColumnDefinitions>
  80. <ColumnDefinition Width="17"/>
  81. <ColumnDefinition />
  82. </Grid.ColumnDefinitions>
  83. <Border x:Name="OuterBorder" Grid.Column="0" HorizontalAlignment="Right" Height="15" BorderBrush="{DynamicResource Expander_Header_BD}" BorderThickness="1" Background="{DynamicResource Expander_Header_BG}" CornerRadius="2" VerticalAlignment="Center" Width="15">
  84. <Grid>
  85. <Rectangle x:Name="Path1" Fill="White" Height="2" Width="9">
  86. <Rectangle.LayoutTransform>
  87. <TransformGroup>
  88. <TransformGroup.Children>
  89. <TransformCollection>
  90. <RotateTransform Angle="-90"/>
  91. </TransformCollection>
  92. </TransformGroup.Children>
  93. </TransformGroup>
  94. </Rectangle.LayoutTransform>
  95. </Rectangle>
  96. <Rectangle x:Name="Path2" Fill="White" Height="9" Width="2">
  97. <Rectangle.LayoutTransform>
  98. <TransformGroup>
  99. <TransformGroup.Children>
  100. <TransformCollection>
  101. <RotateTransform Angle="-90"/>
  102. </TransformCollection>
  103. </TransformGroup.Children>
  104. </TransformGroup>
  105. </Rectangle.LayoutTransform>
  106. </Rectangle>
  107. </Grid>
  108. </Border>
  109. <ContentPresenter Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="5,0" RecognizesAccessKey="True" SnapsToDevicePixels="True"/>
  110. </Grid>
  111. </Grid>
  112. <ControlTemplate.Triggers>
  113. <Trigger Property="IsChecked" Value="true">
  114. <Setter Property="Visibility" TargetName="Path2" Value="Collapsed"/>
  115. <Setter Property="Background" TargetName="OuterBorder" Value="{DynamicResource Expander_Header_BG_HighLight}"/>
  116. <Setter Property="Fill" TargetName="Path1" Value="Black"/>
  117. </Trigger>
  118. <Trigger Property="IsMouseOver" Value="true"/>
  119. <Trigger Property="IsPressed" Value="true">
  120. <Setter Property="Background" TargetName="OuterBorder" Value="{DynamicResource Expander_Header_BG_HighLight}"/>
  121. </Trigger>
  122. </ControlTemplate.Triggers>
  123. </ControlTemplate>
  124. </Setter.Value>
  125. </Setter>
  126. </Style>
  127. <Style TargetType="{x:Type Expander}">
  128. <Setter Property="BorderThickness" Value="0"/>
  129. <Setter Property="Template">
  130. <Setter.Value>
  131. <ControlTemplate TargetType="{x:Type Expander}">
  132. <Grid>
  133. <DockPanel>
  134. <ToggleButton x:Name="HeaderSite"
  135. ContentTemplate="{TemplateBinding HeaderTemplate}"
  136. ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}"
  137. Content="{TemplateBinding Header}"
  138. DockPanel.Dock="Top"
  139. FocusVisualStyle="{StaticResource ExpanderHeaderFocusVisual}"
  140. HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
  141. IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
  142. MinWidth="0"
  143. MinHeight="0"
  144. Style="{StaticResource ExpanderDownHeaderStyle}"
  145. VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
  146. <ContentPresenter x:Name="ExpandSite" Focusable="false" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Visibility="Collapsed" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" DockPanel.Dock="Bottom"/>
  147. </DockPanel>
  148. </Grid>
  149. <ControlTemplate.Triggers>
  150. <Trigger Property="IsExpanded" Value="true">
  151. <Setter Property="Visibility" TargetName="ExpandSite" Value="Visible"/>
  152. </Trigger>
  153. <Trigger Property="ExpandDirection" Value="Right">
  154. <Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Right"/>
  155. <Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Left"/>
  156. <Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderRightHeaderStyle}"/>
  157. </Trigger>
  158. <Trigger Property="IsEnabled" Value="false">
  159. <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
  160. </Trigger>
  161. </ControlTemplate.Triggers>
  162. </ControlTemplate>
  163. </Setter.Value>
  164. </Setter>
  165. </Style>
  166. </ResourceDictionary>