20

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

我想在“基于”StyleA 的程序集 B 中创建一个样式。是否可以?

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

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

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

无法将属性“Style”中的值转换为“System.Windows.Style”类型的对象。只能基于目标类型为“IFrameworkInputElement”的样式。标记文件“SamSeekApp;component/mainwindow.xaml”中的对象“System.Windows.Controls.Button”出错

4

1 回答 1

41

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

于 2009-04-01T00:08:08.517 回答