Skip to content

Commit d432fcc

Browse files
committed
fix: #4466 collapse colon between hours and minute of timepicker if hours collapsed
Add also a new flag enum to show only minute and seconds.
1 parent 0fd615b commit d432fcc

File tree

3 files changed

+29
-28
lines changed

3 files changed

+29
-28
lines changed

src/MahApps.Metro.Samples/MahApps.Metro.Demo/ExampleViews/DateExamples.xaml

+5-22
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
1010
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
1111
xmlns:system="clr-namespace:System;assembly=mscorlib"
12+
xmlns:markup="clr-namespace:MetroDemo.Markup"
1213
d:DataContext="{d:DesignInstance local:MainWindowViewModel}"
1314
d:DesignHeight="600"
1415
d:DesignWidth="800"
@@ -159,17 +160,8 @@
159160
Grid.Row="1"
160161
Grid.Column="1"
161162
Margin="{StaticResource ControlMargin}"
162-
SelectedItem="{x:Static mah:TimePartVisibility.All}">
163-
<ComboBox.ItemsSource>
164-
<x:Array Type="mah:TimePartVisibility">
165-
<mah:TimePartVisibility>All</mah:TimePartVisibility>
166-
<mah:TimePartVisibility>HourMinute</mah:TimePartVisibility>
167-
<mah:TimePartVisibility>Hour</mah:TimePartVisibility>
168-
<mah:TimePartVisibility>Minute</mah:TimePartVisibility>
169-
<mah:TimePartVisibility>Second</mah:TimePartVisibility>
170-
</x:Array>
171-
</ComboBox.ItemsSource>
172-
</ComboBox>
163+
ItemsSource="{Binding Source={markup:EnumBindingSource {x:Type mah:TimePartVisibility}}, Mode=OneTime}"
164+
SelectedItem="{x:Static mah:TimePartVisibility.All}" />
173165

174166
<Label Grid.Row="2"
175167
Grid.Column="0"
@@ -179,17 +171,8 @@
179171
Grid.Row="2"
180172
Grid.Column="1"
181173
Margin="{StaticResource ControlMargin}"
182-
SelectedItem="{x:Static mah:TimePartVisibility.All}">
183-
<ComboBox.ItemsSource>
184-
<x:Array Type="mah:TimePartVisibility">
185-
<mah:TimePartVisibility>All</mah:TimePartVisibility>
186-
<mah:TimePartVisibility>HourMinute</mah:TimePartVisibility>
187-
<mah:TimePartVisibility>Hour</mah:TimePartVisibility>
188-
<mah:TimePartVisibility>Minute</mah:TimePartVisibility>
189-
<mah:TimePartVisibility>Second</mah:TimePartVisibility>
190-
</x:Array>
191-
</ComboBox.ItemsSource>
192-
</ComboBox>
174+
ItemsSource="{Binding Source={markup:EnumBindingSource {x:Type mah:TimePartVisibility}}, Mode=OneTime}"
175+
SelectedItem="{x:Static mah:TimePartVisibility.All}" />
193176

194177
<Label Grid.Row="3"
195178
Grid.Column="0"

src/MahApps.Metro/Controls/TimePicker/TimePartVisibility.cs

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public enum TimePartVisibility
1616
Minute = 1 << 2,
1717
Second = 1 << 3,
1818
HourMinute = Hour | Minute,
19+
MinuteSecond = Minute | Second,
1920
All = HourMinute | Second
2021
}
2122
}

src/MahApps.Metro/Themes/DateTimePicker.xaml

+23-6
Original file line numberDiff line numberDiff line change
@@ -354,18 +354,20 @@
354354
FontSize="{TemplateBinding FontSize}"
355355
ItemStringFormat="{TemplateBinding HoursItemStringFormat}"
356356
ItemsSource="{TemplateBinding SourceHours}" />
357-
<Label Grid.Column="1"
358-
Content=":"
359-
Visibility="{Binding Path=Visibility, ElementName=PART_MinutePicker}" />
357+
<Label x:Name="PART_HourMinuteColon"
358+
Grid.Column="1"
359+
Visibility="Collapsed"
360+
Content=":" />
360361
<ComboBox x:Name="PART_MinutePicker"
361362
Grid.Column="2"
362363
FontFamily="{TemplateBinding FontFamily}"
363364
FontSize="{TemplateBinding FontSize}"
364365
ItemStringFormat="{TemplateBinding MinutesItemStringFormat}"
365366
ItemsSource="{TemplateBinding SourceMinutes}" />
366-
<Label Grid.Column="3"
367-
Content=":"
368-
Visibility="{Binding Path=Visibility, ElementName=PART_SecondPicker}" />
367+
<Label x:Name="PART_MinuteSecondColon"
368+
Grid.Column="3"
369+
Visibility="Collapsed"
370+
Content=":" />
369371
<ComboBox x:Name="PART_SecondPicker"
370372
Grid.Column="4"
371373
FontFamily="{TemplateBinding FontFamily}"
@@ -395,6 +397,21 @@
395397

396398
</Grid>
397399
<ControlTemplate.Triggers>
400+
<MultiTrigger>
401+
<MultiTrigger.Conditions>
402+
<Condition SourceName="PART_HourPicker" Property="Visibility" Value="Visible" />
403+
<Condition SourceName="PART_MinutePicker" Property="Visibility" Value="Visible" />
404+
</MultiTrigger.Conditions>
405+
<Setter TargetName="PART_HourMinuteColon" Property="Visibility" Value="Visible" />
406+
</MultiTrigger>
407+
<MultiTrigger>
408+
<MultiTrigger.Conditions>
409+
<Condition SourceName="PART_MinutePicker" Property="Visibility" Value="Visible" />
410+
<Condition SourceName="PART_SecondPicker" Property="Visibility" Value="Visible" />
411+
</MultiTrigger.Conditions>
412+
<Setter TargetName="PART_MinuteSecondColon" Property="Visibility" Value="Visible" />
413+
</MultiTrigger>
414+
398415
<Trigger Property="mah:TextBoxHelper.ClearTextButton" Value="True">
399416
<Setter TargetName="PART_ClearText" Property="Command" Value="{x:Static mah:MahAppsCommands.ClearControlCommand}" />
400417
</Trigger>

0 commit comments

Comments
 (0)