我试图通过将TimePicker
属性设置为ClockIdentifier
来误用24HourClock
控件作为时间跨度选择器(24小时范围非常适合我的需要)。
唯一的问题是,如果没有Flyout
上的标题,我认为第一列是小时而第二列是分钟,我认为用户界面不够清晰。
我已成功自定义TimePickerFlyoutPresenter
,方法是将自定义样式添加到Application
的{{1}} / Application.Resources
/ ResourceDictionary
元素中,但这适用于显示的每个App.xaml
。我并不总是滥用TimePickerFlyoutPresenter
控件,所以我试图找到一种方法可以选择性地应用此模板。
如何选择使用此模板,而不是将其应用于TimePicker
显示的每个TimePickerFlyoutPresenter
?我在代码中创建TimePicker
类,而不是XAML,以防它产生影响。
答案 0 :(得分:0)
TimePickerFlyoutPresenter
用于后面的TimePicker
代码中。您在TimePickerFlyoutPresenter
xaml代码中找不到关于TimePicker
的任何关键字。如果您在TimePickerFlyoutPresenter
中自定义Application.Resources
样式,则它将是全局的。我并不认为将工具提示放在TimePickerFlyoutPresenter
中是一种很好的做法。此设计可能无法在第一时间向用户提供最直接的信息。我建议您可以将工具提示放在HeaderTemplate
。
<DataTemplate x:Key="TimerDateTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock TextAlignment="Center" Text="Hour" FontSize="13"/>
<TextBlock Grid.Column="1" TextAlignment="Center" Text="minute" FontSize="13"/>
</Grid>
</DataTemplate>
<强>用法强>
<TimePicker ClockIdentifier="24HourClock" HeaderTemplate="{StaticResource TimerDateTemplate}">