WPF:样式基于另一个在单独的程序集中

时间:2009-03-31 21:48:19

标签: wpf resources styles resourcedictionary mergeddictionaries

程序集A - ResourceDictionary包含StyleA样式。
程序集B - ResourceDictionary.MergedDictionaries将程序集A中的资源合并到B中。

我想基于“StyleA”在Assembly B中创建一个样式。可能吗?

我正在尝试创建这种风格:

<Style x:Key="StyleB" BasedOn="{StaticResource StyleA}">
   <Setter Property="Button.Foreground" Value="Khaki"/>
</Style>

但是如果我使用StyleB,我在运行时会得到一个XamlParseException异常:

无法将属性“Style”中的值转换为“System.Windows.Style”类型的对象。只能基于具有基本类型“IFrameworkInputElement”的目标类型的Style。标记文件'SamSeekApp; component / mainwindow.xaml'

中对象'System.Windows.Controls.Button'出错

1 个答案:

答案 0 :(得分:40)

尝试将TargetType =“{x:Type Button}”添加到“StyleB”。