我在解析外部程序集中的资源方面遇到了一些麻烦。
我在一个名为Theme的项目中有一个Styles.xaml文件,我有一个默认按钮样式,声明如下:
<Style TargetType="{x:Type Button}" x:Key="{x:Type Button}">
<!--Setters here-->
</Style>
然后在一个单独的WPF项目中(但在同一个解决方案中)我在app.xaml文件中有以下内容:
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="/Theme;component/Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
然后在主窗口中,我声明一个没有附加样式的默认Button,如下所示:
<Button Width="100" Height="100" />
在设计视图中,按钮似乎从Styles.xaml文件中获取样式,但是当我构建并运行项目时,Button只是默认为标准按钮样式。
我已经检查过是否已将Theme.dll文件复制到WPF构建目录(并且已经存在),所以我不知道为什么会这样。
有趣的是,如果我像这样定义按钮样式
<Style TargetType="{x:Type Button}" x:Key="MyStyle">
然后直接在其他项目中的Button上引用它,就像这样
<Button Style={StaticResource MyStyle} Width="100" Height="100" />
它在设计视图中选择样式,并在构建和执行项目时正常工作。
有什么想法吗?任何帮助都会很棒!
克里斯