在样式文件中使用 setter 覆盖控制资源
Overrides control resource with setter in style file
我有覆盖 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 做到这一点?
如果我想将通用样式应用于所有项目日历而不必在每个日历样式中都键入 Style={StaticResource ...},我应该如何定义此样式?
您可以直接将 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 中的样式控件。
我有覆盖 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 做到这一点?
如果我想将通用样式应用于所有项目日历而不必在每个日历样式中都键入 Style={StaticResource ...},我应该如何定义此样式?
您可以直接将 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 中的样式控件。