【发布时间】:2014-08-14 17:22:03
【问题描述】:
我正在编写一个 WPF 自定义控件库并实现与 WPF 默认主题一致的主题,即在我的 WPF 自定义控件库项目的 Themes 文件夹中,我有一个名为 Aero.NormalColor.xaml 的资源字典,它将在 Aero 时使用.NormalColor 是桌面主题。
默认的 Aero.NormalColor 主题定义了我想在我的资源字典中使用的许多资源(它们可以从这里下载 http://go.microsoft.com/fwlink/?LinkID=158252)。
例如它定义了以下资源:
<LinearGradientBrush x:Key="ButtonNormalBackground" StartPoint="0,0" EndPoint="0,1">
<LinearGradientBrush.GradientStops>
<GradientStop Color="#F3F3F3" Offset="0"/>
<GradientStop Color="#EBEBEB" Offset="0.5"/>
<GradientStop Color="#DDDDDD" Offset="0.5"/>
<GradientStop Color="#CDCDCD" Offset="1"/>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
在我的 Aero.NormalColor.xaml 资源字典中,我尝试按如下方式使用此资源:
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Aero,
Version=4.0.0.0,
PublicKeyToken=31bf3856ad364e35;
component/themes/aero.normalcolor.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style x:Key="{x:Type myControls:MyControl}" TargetType="{x:Type myControls:MyControl}">
<Setter Property="Background" Value="{StaticResource ButtonNormalBackground}"/>
....
我明白这些资源可能会发生变化,因此可能不建议使用它们,但是我仍然想知道这是否可能,有什么想法吗?
【问题讨论】:
标签: wpf xaml wpf-controls