日期选择器 - 禁用前景色 Windows Phone 8.1 RT

Datepicker - disabled foreground color Windows Phone 8.1 RT

如何设置DatePicker的前台为disabled状态?

我试过设置样式res:

<SolidColorBrush x:Key="DatePickerForegroundThemeBrush" Color="#444444" />

和:

dpDate.IsEnabled = false; dpDate.Foreground = new SolidColorBrush(Colors.Black);

但还是透明的。

您需要修改 DatePicker 控件的模板,以便在它处于禁用视觉状态时更改它的行为;实际上,DatePicker 中有一个按钮,您需要更改该按钮的行为。

  1. 在设计器中,右键单击 DatePicker,然后 select 编辑模板 -> 编辑副本 -> 确定。现在设计器已经为控件生成了样式。
  2. 再次执行第一步,为日期选择器中的按钮生成样式。
  3. 转到 XAML 视图。 Page.Resources元素下有两个样式元素:ButtonStyle1和DatePickerStyle1。找到并评论以下部分:

XAML:

<VisualState x:Name="Disabled">
    <Storyboard>
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground"
                                       Storyboard.TargetName="ContentPresenter">
            <DiscreteObjectKeyFrame KeyTime="0"
                                    Value="{ThemeResource ButtonDisabledForegroundThemeBrush}" />
        </ObjectAnimationUsingKeyFrames>
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush"
                                       Storyboard.TargetName="Border">
            <DiscreteObjectKeyFrame KeyTime="0"
                                    Value="{ThemeResource ButtonDisabledBorderThemeBrush}" />
        </ObjectAnimationUsingKeyFrames>
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background"
                                       Storyboard.TargetName="Border">
            <DiscreteObjectKeyFrame KeyTime="0"
                                    Value="{ThemeResource ButtonDisabledBackgroundThemeBrush}" />
        </ObjectAnimationUsingKeyFrames>
    </Storyboard>
</VisualState>

有关自定义控件模板的更多解释示例,请查看 Quickstart: Control templates (XAML)