日期选择器 - 禁用前景色 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 中有一个按钮,您需要更改该按钮的行为。
- 在设计器中,右键单击 DatePicker,然后 select 编辑模板 -> 编辑副本 -> 确定。现在设计器已经为控件生成了样式。
- 再次执行第一步,为日期选择器中的按钮生成样式。
- 转到 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)。
如何设置DatePicker的前台为disabled状态?
我试过设置样式res:
<SolidColorBrush x:Key="DatePickerForegroundThemeBrush" Color="#444444" />
和:
dpDate.IsEnabled = false;
dpDate.Foreground = new SolidColorBrush(Colors.Black);
但还是透明的。
您需要修改 DatePicker 控件的模板,以便在它处于禁用视觉状态时更改它的行为;实际上,DatePicker 中有一个按钮,您需要更改该按钮的行为。
- 在设计器中,右键单击 DatePicker,然后 select 编辑模板 -> 编辑副本 -> 确定。现在设计器已经为控件生成了样式。
- 再次执行第一步,为日期选择器中的按钮生成样式。
- 转到 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)。