Expander.xaml 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  3. <ControlTemplate
  4. TargetType="{x:Type ToggleButton}"
  5. x:Key="ExpanderToggleButton">
  6. <Grid>
  7. <Border
  8. Name="CollapsedArrow"
  9. Width="48"
  10. Height="48"
  11. Background="#00FFFFFF">
  12. <Path
  13. HorizontalAlignment="Center"
  14. VerticalAlignment="Center"
  15. Fill="{DynamicResource Brush.Text}"
  16. Data="{DynamicResource Icon.CaretDown}" />
  17. </Border>
  18. <Border
  19. Name="ExpandedArrow"
  20. Width="48"
  21. Height="48"
  22. Background="#00FFFFFF"
  23. Visibility="Collapsed">
  24. <Path
  25. Margin="0"
  26. HorizontalAlignment="Center"
  27. VerticalAlignment="Center"
  28. Fill="{DynamicResource Brush.Text}"
  29. Data="{DynamicResource Icon.CaretUp}" />
  30. </Border>
  31. </Grid>
  32. <ControlTemplate.Triggers>
  33. <Trigger
  34. Property="ToggleButton.IsChecked"
  35. Value="True">
  36. <Setter
  37. TargetName="CollapsedArrow"
  38. Property="Visibility"
  39. Value="Hidden" />
  40. <Setter
  41. TargetName="ExpandedArrow"
  42. Property="Visibility"
  43. Value="Visible" />
  44. </Trigger>
  45. </ControlTemplate.Triggers>
  46. </ControlTemplate>
  47. <ControlTemplate
  48. TargetType="{x:Type ToggleButton}"
  49. x:Key="ExpanderToggleButtonRecipeInfo">
  50. <Grid
  51. Margin="0,-25,0,0">
  52. <Border
  53. Name="CollapsedArrow"
  54. Width="150"
  55. Height="100"
  56. Background="#00FFFFFF">
  57. <Path
  58. HorizontalAlignment="Center"
  59. VerticalAlignment="Center"
  60. Fill="{DynamicResource Brush.Text}"
  61. Data="{DynamicResource Icon.CaretDown}" />
  62. </Border>
  63. <Border
  64. Name="ExpandedArrow"
  65. Width="150"
  66. Height="100"
  67. Background="#00FFFFFF"
  68. Visibility="Collapsed">
  69. <Path
  70. HorizontalAlignment="Center"
  71. VerticalAlignment="Center"
  72. Fill="{DynamicResource Brush.Text}"
  73. Data="{DynamicResource Icon.CaretUp}" />
  74. </Border>
  75. </Grid>
  76. <ControlTemplate.Triggers>
  77. <Trigger
  78. Property="ToggleButton.IsChecked"
  79. Value="True">
  80. <Setter
  81. TargetName="CollapsedArrow"
  82. Property="Visibility"
  83. Value="Hidden" />
  84. <Setter
  85. TargetName="ExpandedArrow"
  86. Property="Visibility"
  87. Value="Visible" />
  88. </Trigger>
  89. </ControlTemplate.Triggers>
  90. </ControlTemplate>
  91. <Style
  92. TargetType="{x:Type Expander}"
  93. x:Key="Expander.Base">
  94. <Setter
  95. Property="Template">
  96. <Setter.Value>
  97. <ControlTemplate
  98. TargetType="{x:Type Expander}">
  99. <Grid>
  100. <Grid.RowDefinitions>
  101. <RowDefinition
  102. Height="Auto" />
  103. <RowDefinition
  104. Name="ContentRow"
  105. Height="0" />
  106. </Grid.RowDefinitions>
  107. <Border
  108. Name="Border"
  109. Grid.Row="0"
  110. BorderThickness="0"
  111. Background="{DynamicResource Brush.Background}"
  112. CornerRadius="3">
  113. <Grid>
  114. <Grid.RowDefinitions>
  115. <RowDefinition
  116. Height="Auto" />
  117. <RowDefinition
  118. Height="*" />
  119. </Grid.RowDefinitions>
  120. <Grid.ColumnDefinitions>
  121. <ColumnDefinition
  122. Width="*" />
  123. <ColumnDefinition
  124. Width="Auto" />
  125. </Grid.ColumnDefinitions>
  126. <ContentPresenter
  127. Grid.RowSpan="2"
  128. Grid.Column="0"
  129. Margin="4"
  130. ContentSource="Header"
  131. RecognizesAccessKey="True" />
  132. <ToggleButton
  133. Grid.Row="0"
  134. Grid.Column="1"
  135. Width="48"
  136. Height="48"
  137. Margin="0,16,16,0"
  138. OverridesDefaultStyle="True"
  139. Template="{StaticResource ExpanderToggleButton}"
  140. IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" />
  141. </Grid>
  142. </Border>
  143. <Border
  144. Name="Content"
  145. Grid.Row="1"
  146. BorderThickness="0"
  147. Background="{DynamicResource Brush.Background}"
  148. CornerRadius="3 0 0 3">
  149. <ContentPresenter
  150. Margin="4" />
  151. </Border>
  152. </Grid>
  153. <ControlTemplate.Triggers>
  154. <Trigger
  155. Property="Expander.IsExpanded"
  156. Value="True">
  157. <Setter
  158. TargetName="Border"
  159. Property="Border.CornerRadius"
  160. Value="3 0 0 3" />
  161. <Setter
  162. TargetName="ContentRow"
  163. Property="Height"
  164. Value="Auto" />
  165. </Trigger>
  166. </ControlTemplate.Triggers>
  167. </ControlTemplate>
  168. </Setter.Value>
  169. </Setter>
  170. </Style>
  171. <Style
  172. BasedOn="{StaticResource Expander.Base}"
  173. TargetType="{x:Type Expander}"
  174. x:Key="{x:Type Expander}" />
  175. <Style
  176. TargetType="{x:Type Expander}"
  177. x:Key="Style.ExpanderRecipeInfo">
  178. <Setter
  179. Property="Template">
  180. <Setter.Value>
  181. <ControlTemplate
  182. TargetType="{x:Type Expander}">
  183. <Grid>
  184. <Grid.RowDefinitions>
  185. <RowDefinition
  186. Height="Auto" />
  187. <RowDefinition
  188. Name="ContentRow"
  189. Height="0" />
  190. </Grid.RowDefinitions>
  191. <Border
  192. Name="Border"
  193. Grid.Row="0"
  194. BorderThickness="1"
  195. Background="{DynamicResource Brush.Overlay3Percent}"
  196. CornerRadius="3">
  197. <Grid
  198. Margin="0,10,0,10">
  199. <Grid.RowDefinitions>
  200. <RowDefinition
  201. Height="Auto" />
  202. <RowDefinition
  203. Height="*" />
  204. </Grid.RowDefinitions>
  205. <Grid.ColumnDefinitions>
  206. <ColumnDefinition
  207. Width="*" />
  208. <ColumnDefinition
  209. Width="100" />
  210. </Grid.ColumnDefinitions>
  211. <ContentPresenter
  212. Grid.RowSpan="1"
  213. Margin="0"
  214. ContentSource="Header"
  215. RecognizesAccessKey="True" />
  216. <ToggleButton
  217. Grid.Row="0"
  218. Grid.Column="1"
  219. Width="200"
  220. Height="40"
  221. Margin="0,-10,0,0"
  222. HorizontalAlignment="Center"
  223. BorderBrush="#00FFFFFF"
  224. OverridesDefaultStyle="True"
  225. Template="{DynamicResource ExpanderToggleButtonRecipeInfo}"
  226. IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" />
  227. </Grid>
  228. </Border>
  229. <Border
  230. Name="Content"
  231. Grid.Row="1"
  232. Background="#00FFFFFF"
  233. BorderThickness="0"
  234. CornerRadius="3 0 0 3">
  235. <ContentPresenter
  236. Margin="4" />
  237. </Border>
  238. </Grid>
  239. <ControlTemplate.Triggers>
  240. <Trigger
  241. Property="Expander.IsExpanded"
  242. Value="True">
  243. <Setter
  244. TargetName="Border"
  245. Property="Border.CornerRadius"
  246. Value="0 3 3 0" />
  247. <Setter
  248. TargetName="ContentRow"
  249. Property="Height"
  250. Value="Auto" />
  251. </Trigger>
  252. </ControlTemplate.Triggers>
  253. </ControlTemplate>
  254. </Setter.Value>
  255. </Setter>
  256. </Style>
  257. </ResourceDictionary>