DateTimePickerBaseStyle.xaml 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:hc="clr-namespace:HandyControl.Controls"
  4. xmlns:interactivity="clr-namespace:HandyControl.Interactivity"
  5. xmlns:system="clr-namespace:System;assembly=mscorlib">
  6. <Style x:Key="DateTimePickerBaseStyle" BasedOn="{StaticResource InputElementBaseStyle}" TargetType="hc:DateTimePicker">
  7. <Setter Property="CaretBrush" Value="{DynamicResource PrimaryTextBrush}"/>
  8. <Setter Property="Template">
  9. <Setter.Value>
  10. <ControlTemplate TargetType="hc:DateTimePicker">
  11. <Grid x:Name="PART_Root">
  12. <Grid.ColumnDefinitions>
  13. <ColumnDefinition />
  14. <ColumnDefinition Width="Auto" />
  15. </Grid.ColumnDefinitions>
  16. <Border x:Name="border" Grid.ColumnSpan="2" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" />
  17. <Button Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" hc:IconElement.Width="14" Style="{StaticResource ButtonIcon}" Padding="{Binding Padding, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ThicknessSplitConverter}, ConverterParameter='0,0,1,0'}" hc:IconElement.Geometry="{StaticResource ClockGeometry}" x:Name="PART_Button" Grid.Column="1" Foreground="{Binding BorderBrush,ElementName=border}" Focusable="False" Grid.Row="0" />
  18. <hc:WatermarkTextBox CaretBrush="{TemplateBinding CaretBrush}" Foreground="{TemplateBinding Foreground}" Padding="{TemplateBinding Padding}" x:Name="PART_TextBox" HorizontalAlignment="Stretch" Grid.Column="0" Focusable="{TemplateBinding Focusable}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Grid.Row="0" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" />
  19. <Popup Grid.Column="0" x:Name="PART_Popup" PopupAnimation="{StaticResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" AllowsTransparency="True" Placement="Bottom" PlacementTarget="{Binding ElementName=border}" StaysOpen="False" />
  20. </Grid>
  21. <ControlTemplate.Triggers>
  22. <Trigger Property="hc:InfoElement.IsReadOnly" Value="True">
  23. <Setter TargetName="PART_Button" Property="IsEnabled" Value="False" />
  24. <Setter TargetName="PART_Button" Property="Visibility" Value="Collapsed" />
  25. <Setter TargetName="PART_TextBox" Property="IsReadOnly" Value="True" />
  26. </Trigger>
  27. <Trigger Property="IsEnabled" Value="false">
  28. <Setter Property="Opacity" TargetName="PART_Root" Value="0.4"/>
  29. </Trigger>
  30. <MultiTrigger>
  31. <MultiTrigger.Conditions>
  32. <Condition Property="IsMouseOver" Value="true"/>
  33. <Condition Property="IsOpen" Value="false" SourceName="PART_Popup"/>
  34. </MultiTrigger.Conditions>
  35. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource SecondaryBorderBrush}"/>
  36. </MultiTrigger>
  37. <MultiTrigger>
  38. <MultiTrigger.Conditions>
  39. <Condition Property="IsMouseOver" Value="true"/>
  40. <Condition Property="IsOpen" Value="true" SourceName="PART_Popup"/>
  41. </MultiTrigger.Conditions>
  42. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource PrimaryBrush}"/>
  43. </MultiTrigger>
  44. <Trigger Property="IsFocused" Value="true" SourceName="PART_TextBox">
  45. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource PrimaryBrush}"/>
  46. </Trigger>
  47. <Trigger Property="IsOpen" Value="True" SourceName="PART_Popup">
  48. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource PrimaryBrush}"/>
  49. </Trigger>
  50. </ControlTemplate.Triggers>
  51. </ControlTemplate>
  52. </Setter.Value>
  53. </Setter>
  54. </Style>
  55. <ControlTemplate x:Key="DateTimePickerExtendTopTemplate" TargetType="hc:DateTimePicker">
  56. <Grid>
  57. <Grid.RowDefinitions>
  58. <RowDefinition Height="Auto"/>
  59. <RowDefinition MinHeight="{Binding Path=(hc:InfoElement.MinContentHeight),RelativeSource={RelativeSource TemplatedParent}}" Height="{Binding Path=(hc:InfoElement.ContentHeight),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Double2GridLengthConverter}}"/>
  60. </Grid.RowDefinitions>
  61. <DockPanel LastChildFill="True" Visibility="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource String2VisibilityConverter}}" HorizontalAlignment="{Binding Path=(hc:TitleElement.HorizontalAlignment),RelativeSource={RelativeSource TemplatedParent}}" Margin="{Binding Path=(hc:TitleElement.MarginOnTheTop),RelativeSource={RelativeSource TemplatedParent}}">
  62. <ContentPresenter DockPanel.Dock="Right" TextElement.Foreground="{DynamicResource DangerBrush}" Margin="4,0,0,0" Content="{Binding Path=(hc:InfoElement.Symbol),RelativeSource={RelativeSource TemplatedParent}}" Visibility="{Binding Path=(hc:InfoElement.Necessary),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}"/>
  63. <TextBlock hc:TextBlockAttach.AutoTooltip="True" TextWrapping="NoWrap" TextTrimming="CharacterEllipsis" Text="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent}}"/>
  64. </DockPanel>
  65. <Grid x:Name="PART_Root" Grid.Row="1">
  66. <Grid.ColumnDefinitions>
  67. <ColumnDefinition />
  68. <ColumnDefinition Width="Auto" />
  69. </Grid.ColumnDefinitions>
  70. <Border x:Name="border" Grid.ColumnSpan="2" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" />
  71. <Button Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" hc:IconElement.Width="14" Style="{StaticResource ButtonIcon}" Padding="{Binding Padding, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ThicknessSplitConverter}, ConverterParameter='0,0,1,0'}" hc:IconElement.Geometry="{StaticResource ClockGeometry}" x:Name="PART_Button" Grid.Column="1" Foreground="{Binding BorderBrush,ElementName=border}" Focusable="False" Grid.Row="0" />
  72. <hc:WatermarkTextBox CaretBrush="{TemplateBinding CaretBrush}" Foreground="{TemplateBinding Foreground}" Padding="{TemplateBinding Padding}" Watermark="{Binding Path=(hc:InfoElement.Placeholder),RelativeSource={RelativeSource TemplatedParent}}" x:Name="PART_TextBox" HorizontalAlignment="Stretch" Grid.Column="0" Focusable="{TemplateBinding Focusable}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Grid.Row="0" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" />
  73. <Popup Grid.Column="0" x:Name="PART_Popup" PopupAnimation="{StaticResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" AllowsTransparency="True" Placement="Bottom" PlacementTarget="{Binding ElementName=border}" StaysOpen="False" />
  74. </Grid>
  75. </Grid>
  76. <ControlTemplate.Triggers>
  77. <Trigger Property="hc:InfoElement.IsReadOnly" Value="True">
  78. <Setter TargetName="PART_Button" Property="IsEnabled" Value="False" />
  79. <Setter TargetName="PART_Button" Property="Visibility" Value="Collapsed" />
  80. <Setter TargetName="PART_TextBox" Property="IsReadOnly" Value="True" />
  81. </Trigger>
  82. <Trigger Property="IsEnabled" Value="false">
  83. <Setter Property="Opacity" TargetName="PART_Root" Value="0.4"/>
  84. </Trigger>
  85. <MultiTrigger>
  86. <MultiTrigger.Conditions>
  87. <Condition Property="IsMouseOver" Value="true" SourceName="PART_Root"/>
  88. <Condition Property="IsOpen" Value="false" SourceName="PART_Popup"/>
  89. </MultiTrigger.Conditions>
  90. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource SecondaryBorderBrush}"/>
  91. </MultiTrigger>
  92. <MultiTrigger>
  93. <MultiTrigger.Conditions>
  94. <Condition Property="IsMouseOver" Value="true" SourceName="PART_Root"/>
  95. <Condition Property="IsOpen" Value="true" SourceName="PART_Popup"/>
  96. </MultiTrigger.Conditions>
  97. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource PrimaryBrush}"/>
  98. </MultiTrigger>
  99. <Trigger Property="IsFocused" Value="true" SourceName="PART_TextBox">
  100. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource PrimaryBrush}"/>
  101. </Trigger>
  102. <Trigger Property="IsOpen" Value="True" SourceName="PART_Popup">
  103. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource PrimaryBrush}"/>
  104. </Trigger>
  105. </ControlTemplate.Triggers>
  106. </ControlTemplate>
  107. <ControlTemplate x:Key="DateTimePickerExtendLeftTemplate" TargetType="hc:DateTimePicker">
  108. <Grid MinHeight="{Binding Path=(hc:InfoElement.MinContentHeight),RelativeSource={RelativeSource TemplatedParent}}" Height="{Binding Path=(hc:InfoElement.ContentHeight),RelativeSource={RelativeSource TemplatedParent}}">
  109. <Grid.ColumnDefinitions>
  110. <ColumnDefinition Width="{Binding Path=(hc:InfoElement.TitleWidth),RelativeSource={RelativeSource TemplatedParent}}"/>
  111. <ColumnDefinition/>
  112. </Grid.ColumnDefinitions>
  113. <DockPanel LastChildFill="True" Visibility="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource String2VisibilityConverter}}" HorizontalAlignment="{Binding Path=(hc:TitleElement.HorizontalAlignment),RelativeSource={RelativeSource TemplatedParent}}" VerticalAlignment="{Binding Path=(hc:TitleElement.VerticalAlignment),RelativeSource={RelativeSource TemplatedParent}}" Margin="{Binding Path=(hc:TitleElement.MarginOnTheLeft),RelativeSource={RelativeSource TemplatedParent}}">
  114. <ContentPresenter DockPanel.Dock="Right" TextElement.Foreground="{DynamicResource DangerBrush}" Margin="4,0,0,0" Content="{Binding Path=(hc:InfoElement.Symbol),RelativeSource={RelativeSource TemplatedParent}}" Visibility="{Binding Path=(hc:InfoElement.Necessary),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}"/>
  115. <TextBlock hc:TextBlockAttach.AutoTooltip="True" TextWrapping="NoWrap" TextTrimming="CharacterEllipsis" Text="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent}}"/>
  116. </DockPanel>
  117. <Grid x:Name="PART_Root" Grid.Column="1">
  118. <Grid.ColumnDefinitions>
  119. <ColumnDefinition />
  120. <ColumnDefinition Width="Auto" />
  121. </Grid.ColumnDefinitions>
  122. <Border x:Name="border" Grid.ColumnSpan="2" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" />
  123. <Button Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" hc:IconElement.Width="14" Style="{StaticResource ButtonIcon}" Padding="{Binding Padding, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ThicknessSplitConverter}, ConverterParameter='0,0,1,0'}" hc:IconElement.Geometry="{StaticResource ClockGeometry}" x:Name="PART_Button" Grid.Column="1" Foreground="{Binding BorderBrush,ElementName=border}" Focusable="False" Grid.Row="0" />
  124. <hc:WatermarkTextBox CaretBrush="{TemplateBinding CaretBrush}" Foreground="{TemplateBinding Foreground}" Padding="{TemplateBinding Padding}" Watermark="{Binding Path=(hc:InfoElement.Placeholder),RelativeSource={RelativeSource TemplatedParent}}" x:Name="PART_TextBox" HorizontalAlignment="Stretch" Grid.Column="0" Focusable="{TemplateBinding Focusable}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Grid.Row="0" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" />
  125. <Popup Grid.Column="0" x:Name="PART_Popup" PopupAnimation="{StaticResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" AllowsTransparency="True" Placement="Bottom" PlacementTarget="{Binding ElementName=border}" StaysOpen="False" />
  126. </Grid>
  127. </Grid>
  128. <ControlTemplate.Triggers>
  129. <Trigger Property="hc:InfoElement.IsReadOnly" Value="True">
  130. <Setter TargetName="PART_Button" Property="IsEnabled" Value="False" />
  131. <Setter TargetName="PART_Button" Property="Visibility" Value="Collapsed" />
  132. <Setter TargetName="PART_TextBox" Property="IsReadOnly" Value="True" />
  133. </Trigger>
  134. <Trigger Property="IsEnabled" Value="false">
  135. <Setter Property="Opacity" TargetName="PART_Root" Value="0.4"/>
  136. </Trigger>
  137. <MultiTrigger>
  138. <MultiTrigger.Conditions>
  139. <Condition Property="IsMouseOver" Value="true" SourceName="PART_Root"/>
  140. <Condition Property="IsOpen" Value="false" SourceName="PART_Popup"/>
  141. </MultiTrigger.Conditions>
  142. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource SecondaryBorderBrush}"/>
  143. </MultiTrigger>
  144. <MultiTrigger>
  145. <MultiTrigger.Conditions>
  146. <Condition Property="IsMouseOver" Value="true" SourceName="PART_Root"/>
  147. <Condition Property="IsOpen" Value="true" SourceName="PART_Popup"/>
  148. </MultiTrigger.Conditions>
  149. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource PrimaryBrush}"/>
  150. </MultiTrigger>
  151. <Trigger Property="IsFocused" Value="true" SourceName="PART_TextBox">
  152. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource PrimaryBrush}"/>
  153. </Trigger>
  154. <Trigger Property="IsOpen" Value="True" SourceName="PART_Popup">
  155. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource PrimaryBrush}"/>
  156. </Trigger>
  157. </ControlTemplate.Triggers>
  158. </ControlTemplate>
  159. <Style x:Key="DateTimePickerExtendBaseStyle" BasedOn="{StaticResource DateTimePickerBaseStyle}" TargetType="hc:DateTimePicker">
  160. <Setter Property="Height" Value="Auto"/>
  161. <Setter Property="hc:InfoElement.Symbol" Value="●"/>
  162. <Setter Property="hc:InfoElement.ContentHeight" Value="{x:Static system:Double.NaN}"/>
  163. <Setter Property="hc:InfoElement.MinContentHeight" Value="{StaticResource DefaultControlHeight}"/>
  164. <Setter Property="Template" Value="{StaticResource DateTimePickerExtendTopTemplate}"/>
  165. <Style.Triggers>
  166. <Trigger Property="hc:InfoElement.TitlePlacement" Value="Left">
  167. <Setter Property="Template" Value="{StaticResource DateTimePickerExtendLeftTemplate}"/>
  168. <Setter Property="Width" Value="Auto"/>
  169. </Trigger>
  170. </Style.Triggers>
  171. </Style>
  172. <ControlTemplate x:Key="DateTimePickerPlusTopTemplate" TargetType="hc:DateTimePicker">
  173. <Grid>
  174. <Grid.RowDefinitions>
  175. <RowDefinition Height="Auto"/>
  176. <RowDefinition MinHeight="{Binding Path=(hc:InfoElement.MinContentHeight),RelativeSource={RelativeSource TemplatedParent}}" Height="{Binding Path=(hc:InfoElement.ContentHeight),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Double2GridLengthConverter}}"/>
  177. </Grid.RowDefinitions>
  178. <DockPanel LastChildFill="True" Visibility="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource String2VisibilityConverter}}" HorizontalAlignment="{Binding Path=(hc:TitleElement.HorizontalAlignment),RelativeSource={RelativeSource TemplatedParent}}" Margin="{Binding Path=(hc:TitleElement.MarginOnTheTop),RelativeSource={RelativeSource TemplatedParent}}">
  179. <ContentPresenter DockPanel.Dock="Right" TextElement.Foreground="{DynamicResource DangerBrush}" Margin="4,0,0,0" Content="{Binding Path=(hc:InfoElement.Symbol),RelativeSource={RelativeSource TemplatedParent}}" Visibility="{Binding Path=(hc:InfoElement.Necessary),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}"/>
  180. <TextBlock hc:TextBlockAttach.AutoTooltip="True" TextWrapping="NoWrap" TextTrimming="CharacterEllipsis" Text="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent}}"/>
  181. </DockPanel>
  182. <Grid x:Name="PART_Root" Grid.Row="1">
  183. <Grid.ColumnDefinitions>
  184. <ColumnDefinition />
  185. <ColumnDefinition Width="Auto" />
  186. <ColumnDefinition Width="Auto" />
  187. </Grid.ColumnDefinitions>
  188. <Border x:Name="border" Grid.ColumnSpan="3" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" />
  189. <Button Height="Auto" Width="Auto" HorizontalContentAlignment="Left" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" hc:IconElement.Width="14" Command="interactivity:ControlCommands.Clear" Visibility="Collapsed" Name="ButtonClear" Grid.Column="1" Style="{StaticResource ButtonIcon}" Padding="0,0,2,0" hc:IconElement.Geometry="{StaticResource DeleteFillCircleGeometry}" Foreground="{Binding BorderBrush,ElementName=border}" />
  190. <Button Height="Auto" Width="Auto" HorizontalContentAlignment="Left" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" hc:IconElement.Width="14" Style="{StaticResource ButtonIcon}" Padding="{Binding Padding, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ThicknessSplitConverter}, ConverterParameter='0,0,1,0'}" hc:IconElement.Geometry="{StaticResource ClockGeometry}" x:Name="PART_Button" Grid.Column="2" Foreground="{Binding BorderBrush,ElementName=border}" Focusable="False" Grid.Row="0" />
  191. <hc:WatermarkTextBox x:Name="PART_TextBox" CaretBrush="{TemplateBinding CaretBrush}" Foreground="{TemplateBinding Foreground}" Padding="{TemplateBinding Padding}" Watermark="{Binding Path=(hc:InfoElement.Placeholder),RelativeSource={RelativeSource TemplatedParent}}" HorizontalAlignment="Stretch" Grid.Column="0" Focusable="{TemplateBinding Focusable}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Grid.Row="0" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" />
  192. <Popup Grid.Column="0" x:Name="PART_Popup" PopupAnimation="{StaticResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" AllowsTransparency="True" Placement="Bottom" PlacementTarget="{Binding ElementName=border}" StaysOpen="False" />
  193. </Grid>
  194. </Grid>
  195. <ControlTemplate.Triggers>
  196. <Trigger Property="hc:InfoElement.IsReadOnly" Value="True">
  197. <Setter TargetName="ButtonClear" Property="IsEnabled" Value="False" />
  198. <Setter TargetName="PART_Button" Property="IsEnabled" Value="False" />
  199. <Setter TargetName="PART_Button" Property="Visibility" Value="Collapsed" />
  200. <Setter TargetName="PART_TextBox" Property="IsReadOnly" Value="True" />
  201. </Trigger>
  202. <Trigger Property="IsEnabled" Value="false">
  203. <Setter Property="Opacity" TargetName="PART_Root" Value="0.4"/>
  204. </Trigger>
  205. <MultiTrigger>
  206. <MultiTrigger.Conditions>
  207. <Condition Property="IsMouseOver" Value="true" SourceName="PART_Root"/>
  208. <Condition Property="IsOpen" Value="false" SourceName="PART_Popup"/>
  209. </MultiTrigger.Conditions>
  210. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource SecondaryBorderBrush}"/>
  211. </MultiTrigger>
  212. <MultiTrigger>
  213. <MultiTrigger.Conditions>
  214. <Condition Property="IsMouseOver" Value="true" SourceName="PART_Root"/>
  215. <Condition Property="IsOpen" Value="true" SourceName="PART_Popup"/>
  216. </MultiTrigger.Conditions>
  217. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource PrimaryBrush}"/>
  218. </MultiTrigger>
  219. <MultiTrigger>
  220. <MultiTrigger.Conditions>
  221. <Condition Property="IsMouseOver" Value="true" SourceName="PART_Root"/>
  222. <Condition Property="hc:InfoElement.ShowClearButton" Value="True"/>
  223. <Condition Property="hc:InfoElement.IsReadOnly" Value="False" />
  224. </MultiTrigger.Conditions>
  225. <Setter Property="Visibility" Value="Visible" TargetName="ButtonClear"/>
  226. </MultiTrigger>
  227. <Trigger Property="IsFocused" Value="true" SourceName="PART_TextBox">
  228. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource PrimaryBrush}"/>
  229. </Trigger>
  230. <Trigger Property="IsOpen" Value="True" SourceName="PART_Popup">
  231. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource PrimaryBrush}" />
  232. </Trigger>
  233. </ControlTemplate.Triggers>
  234. </ControlTemplate>
  235. <ControlTemplate x:Key="DateTimePickerPlusLeftTemplate" TargetType="hc:DateTimePicker">
  236. <Grid MinHeight="{Binding Path=(hc:InfoElement.MinContentHeight),RelativeSource={RelativeSource TemplatedParent}}" Height="{Binding Path=(hc:InfoElement.ContentHeight),RelativeSource={RelativeSource TemplatedParent}}">
  237. <Grid.ColumnDefinitions>
  238. <ColumnDefinition Width="{Binding Path=(hc:InfoElement.TitleWidth),RelativeSource={RelativeSource TemplatedParent}}"/>
  239. <ColumnDefinition/>
  240. </Grid.ColumnDefinitions>
  241. <DockPanel LastChildFill="True" Visibility="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource String2VisibilityConverter}}" HorizontalAlignment="{Binding Path=(hc:TitleElement.HorizontalAlignment),RelativeSource={RelativeSource TemplatedParent}}" VerticalAlignment="{Binding Path=(hc:TitleElement.VerticalAlignment),RelativeSource={RelativeSource TemplatedParent}}" Margin="{Binding Path=(hc:TitleElement.MarginOnTheLeft),RelativeSource={RelativeSource TemplatedParent}}">
  242. <ContentPresenter DockPanel.Dock="Right" TextElement.Foreground="{DynamicResource DangerBrush}" Margin="4,0,0,0" Content="{Binding Path=(hc:InfoElement.Symbol),RelativeSource={RelativeSource TemplatedParent}}" Visibility="{Binding Path=(hc:InfoElement.Necessary),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}"/>
  243. <TextBlock hc:TextBlockAttach.AutoTooltip="True" TextWrapping="NoWrap" TextTrimming="CharacterEllipsis" Text="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent}}"/>
  244. </DockPanel>
  245. <Grid x:Name="PART_Root" Grid.Column="1">
  246. <Grid.ColumnDefinitions>
  247. <ColumnDefinition />
  248. <ColumnDefinition Width="Auto" />
  249. <ColumnDefinition Width="Auto" />
  250. </Grid.ColumnDefinitions>
  251. <Border x:Name="border" Grid.ColumnSpan="3" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" />
  252. <Button Height="Auto" Width="Auto" HorizontalContentAlignment="Left" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" hc:IconElement.Width="14" Command="interactivity:ControlCommands.Clear" Visibility="Collapsed" Name="ButtonClear" Grid.Column="1" Style="{StaticResource ButtonIcon}" Padding="0,0,2,0" hc:IconElement.Geometry="{StaticResource DeleteFillCircleGeometry}" Foreground="{Binding BorderBrush,ElementName=border}" />
  253. <Button Height="Auto" Width="Auto" HorizontalContentAlignment="Left" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" hc:IconElement.Width="14" Style="{StaticResource ButtonIcon}" Padding="{Binding Padding, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ThicknessSplitConverter}, ConverterParameter='0,0,1,0'}" hc:IconElement.Geometry="{StaticResource ClockGeometry}" x:Name="PART_Button" Grid.Column="2" Foreground="{Binding BorderBrush,ElementName=border}" Focusable="False" Grid.Row="0" />
  254. <hc:WatermarkTextBox x:Name="PART_TextBox" CaretBrush="{TemplateBinding CaretBrush}" Foreground="{TemplateBinding Foreground}" Padding="{TemplateBinding Padding}" Watermark="{Binding Path=(hc:InfoElement.Placeholder),RelativeSource={RelativeSource TemplatedParent}}" HorizontalAlignment="Stretch" Grid.Column="0" Focusable="{TemplateBinding Focusable}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Grid.Row="0" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" />
  255. <Popup Grid.Column="0" x:Name="PART_Popup" PopupAnimation="{StaticResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" AllowsTransparency="True" Placement="Bottom" PlacementTarget="{Binding ElementName=border}" StaysOpen="False" />
  256. </Grid>
  257. </Grid>
  258. <ControlTemplate.Triggers>
  259. <Trigger Property="hc:InfoElement.IsReadOnly" Value="True">
  260. <Setter TargetName="ButtonClear" Property="IsEnabled" Value="False" />
  261. <Setter TargetName="PART_Button" Property="IsEnabled" Value="False" />
  262. <Setter TargetName="PART_Button" Property="Visibility" Value="Collapsed" />
  263. <Setter TargetName="PART_TextBox" Property="IsReadOnly" Value="True" />
  264. </Trigger>
  265. <Trigger Property="IsEnabled" Value="false">
  266. <Setter Property="Opacity" TargetName="PART_Root" Value="0.4"/>
  267. </Trigger>
  268. <MultiTrigger>
  269. <MultiTrigger.Conditions>
  270. <Condition Property="IsMouseOver" Value="true" SourceName="PART_Root"/>
  271. <Condition Property="IsOpen" Value="false" SourceName="PART_Popup"/>
  272. </MultiTrigger.Conditions>
  273. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource SecondaryBorderBrush}"/>
  274. </MultiTrigger>
  275. <MultiTrigger>
  276. <MultiTrigger.Conditions>
  277. <Condition Property="IsMouseOver" Value="true" SourceName="PART_Root"/>
  278. <Condition Property="IsOpen" Value="true" SourceName="PART_Popup"/>
  279. </MultiTrigger.Conditions>
  280. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource PrimaryBrush}"/>
  281. </MultiTrigger>
  282. <MultiTrigger>
  283. <MultiTrigger.Conditions>
  284. <Condition Property="IsMouseOver" Value="true" SourceName="PART_Root"/>
  285. <Condition Property="hc:InfoElement.ShowClearButton" Value="True"/>
  286. <Condition Property="hc:InfoElement.IsReadOnly" Value="False" />
  287. </MultiTrigger.Conditions>
  288. <Setter Property="Visibility" Value="Visible" TargetName="ButtonClear"/>
  289. </MultiTrigger>
  290. <Trigger Property="IsFocused" Value="true" SourceName="PART_TextBox">
  291. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource PrimaryBrush}"/>
  292. </Trigger>
  293. <Trigger Property="IsOpen" Value="True" SourceName="PART_Popup">
  294. <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource PrimaryBrush}" />
  295. </Trigger>
  296. </ControlTemplate.Triggers>
  297. </ControlTemplate>
  298. <Style x:Key="DateTimePickerPlusBaseStyle" BasedOn="{StaticResource DateTimePickerExtendBaseStyle}" TargetType="hc:DateTimePicker">
  299. <Setter Property="Template" Value="{StaticResource DateTimePickerPlusTopTemplate}"/>
  300. <Style.Triggers>
  301. <Trigger Property="hc:InfoElement.TitlePlacement" Value="Left">
  302. <Setter Property="Template" Value="{StaticResource DateTimePickerPlusLeftTemplate}"/>
  303. <Setter Property="Width" Value="Auto"/>
  304. </Trigger>
  305. </Style.Triggers>
  306. </Style>
  307. </ResourceDictionary>