【问题标题】:Modifying default style of TimePicker and DatePicker controls修改 TimePicker 和 DatePicker 控件的默认样式
【发布时间】:2015-08-10 11:25:44
【问题描述】:

我正在尝试更改 ComboBox 中所选日期、时间值的背景、按下状态背景和颜色(即当前的重点颜色)。问题是,当我应用 msdn here 和 here 提供的默认模板时。 我的控件发生了变化,因此这些框中的每个值现在都有不同的 ComboBox 而不是只有一个。如下图所示(日、月、年有不同的 ComboBox)。

(图片仅供参考)

还有一些主题资源也丢失了,比如

Foreground="{ThemeResource TimePickerHeaderForegroundThemeBrush}"

Margin="{ThemeResource TimePickerHeaderThemeMargin}"  

FontWeight="{ThemeResource TimePickerHeaderThemeFontWeight

这就是我的控件在没有应用样式的情况下的样子

这是我正在使用的代码

            <DatePicker     x:Name="Date_Picker"
                            Header="Date:"
                            Background="{StaticResource HotPink}" 
                            Foreground="{StaticResource Gray05}" />
            <TimePicker     x:Name="Time_Picker"
                            Header="Time:"
                            MinuteIncrement="5"
                            Background="{StaticResource HotPink}"
                            Foreground="{StaticResource Gray05}"/>

另一个问题是粉红色背景仅在 DatePicker 上可见,而在 TimePicker 上不可见,这很奇怪。

【问题讨论】:

    标签: xaml windows-phone-8.1 windows-8.1 winrt-xaml win-universal-app


    【解决方案1】:

    您应该编辑控件的模板。在 Blend 中打开项目并在 Document Outline 中找到该元素。右键单击并选择Edit Template &gt; Edit a Copy...(见下图)。这将生成默认模板的副本。从这里您可以编辑不同的视觉状态(这决定了控件在不同状态下的外观:活动/悬停/禁用/等)。当您在此处设置自定义值时,它们应该会按预期工作。

    VS2015 的 Blend 屏幕截图

    【讨论】:

    • 自从我开始使用 winrt 以来,我在所有控件中都只有“创建空”选项。它可以在 Silverlight 中使用,那时的生活是如此简单。现在 Blend 没用了。
    • 刚到家并检查了我的常规开发计算机。我在 Blend 2015 中的选项就在那里。从我将控件添加到选项变为可用大约需要 15 秒,所以看起来它正在懒惰地加载模板。
    • 编辑复制选项仍处于禁用状态,vs 2015 中的默认模板是 msdn 上的模板。 vs 2013 使用的是其他模板,其中所有字段都在同一个组合框中。
    • 我刚刚意识到您可能正在使用共享页面(将其放入解决方案的 Shared 项目中)。在这种情况下,您无法编辑模板,因为它在手机和桌面上是不同的:它针对每个平台进行了“优化”。为了能够对其进行样式设置,您必须至少将 xaml 文件移动到特定于平台的项目中。您仍然可以使用共享代码隐藏文件 (.xaml.cs)。
    猜你喜欢
    • 1970-01-01
    • 2013-07-08
    • 2012-06-20
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多