当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《WPF:样式基于另一个在单独的程序集中》经验,为你挑选了1个好方法。

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

我想在Assembly B"基于"StyleA创建一个样式.可能吗?

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


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

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



1> 小智..:

尝试将TargetType ="{x:Type Button}"添加到"StyleB"中.


因为WPF需要知道您的样式所针对的类型,所以它可以检查您覆盖的属性等.即使父(BasedOn)样式声明目标类型,您仍需要重新声明子样式中的目标类型
推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有