Datepicker - 禁用前景色Windows Phone 8.1 RT

时间:2015-04-23 08:36:40

标签: datepicker windows-runtime windows-phone windows-phone-8.1 foreground

如何将DatePicker的前景设置为禁用状态?

我试过设置样式res:

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

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

但它仍然透明。

1 个答案:

答案 0 :(得分:2)

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

  1. 在设计器中,右键单击DatePicker,然后选择编辑模板 - &gt;编辑副本 - &gt;好。现在,设计师已经为控件生成了一种风格。
  2. 再次执行第一步,为日期选择器内的按钮生成样式。
  3. 转到XAML视图。 Page.Resources元素下有两个样式元素:ButtonStyle1和DatePickerStyle1。查找并评论以下部分:
  4. 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)