【问题标题】:Overrides control resource with setter in style file使用样式文件中的设置器覆盖控制资源
【发布时间】:2017-02-01 15:23:49
【问题描述】:

我有代码来覆盖 XAML 中的 CalendarDatePicker 资源 (CalendarDatePickerCalendarGlyphForeground)。

<CalendarDatePicker Style="{StaticResource CalendarDatePickerStyle}">
    <CalendarDatePicker.Resources>
        <SolidColorBrush x:Key="CalendarDatePickerCalendarGlyphForeground" Color="{StaticResource PrimaryColor}"/>
    </CalendarDatePicker.Resources>
</CalendarDatePicker>

现在,我需要重用这段代码,在我的样式文件项目中创建一个通用样式,以便在我的项目中的其他 CalendarDatePicker 中使用,如下所示:

<Style x:Key="CalendarDatePickerStyle" TargetType="CalendarDatePicker">        
        <Setter ....
</Style>

我应该如何使用 Setter 来做到这一点?

如果我想将通用样式应用于所有项目日历,而不必输入每个 Calendar Style={StaticResource ...},我应该如何定义这种样式?

【问题讨论】:

  • 从字面上看,只需将 SolidColorBrush 资源放入资源字典中(保持 x:Key 名称相同),以便按照继承顺序将其覆盖为默认值。不需要样式模板的东西amigo。

标签: c# xaml uwp win-universal-app windows-10-universal


【解决方案1】:

您可以直接将 SolidColorBrush 定义添加到您的 App.xaml 资源中,它将覆盖默认样式。主要是使用与控件相同的Key。

例如,要在每个 CalendarDatePicker 中使用您自己的颜色覆盖 CalendarDatePickerCalendarGlyphForeground,使 App.xaml 如下所示:

<Application
x:Class="App1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App1"
RequestedTheme="Light">

<Application.Resources>
    <SolidColorBrush x:Key="CalendarDatePickerCalendarGlyphForeground" Color="Green"/>
</Application.Resources>

这里 more info 关于 UWP 中的样式控件。

【讨论】:

  • 你喜欢那样... +1
  • 我试图添加到我的样式文件“CalendarDatePicker.Resources”中,并且以某种方式添加到 CalendarDatePickerCalendarGlyphForeground 属性中,而不是直接没有“CalendarDatePicker.Resources”标签。新手的东西...谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多