【发布时间】:2012-03-13 18:58:54
【问题描述】:
我在从外部程序集中解析资源时遇到了一些麻烦。
我在一个名为 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 Width="100" Height="100" />
在设计视图中,按钮似乎从 Styles.xaml 文件中获取样式,但是当我构建和运行项目时,按钮只是默认为标准按钮样式。
我检查了 Theme.dll 文件是否已被复制到 WPF 构建目录中(确实如此),所以我不知道为什么会发生这种情况。
有趣的是,如果我这样定义按钮样式
<Style TargetType="{x:Type Button}" x:Key="MyStyle">
然后像这样直接在其他项目的Button上引用
<Button Style={StaticResource MyStyle} Width="100" Height="100" />
它在设计视图中选择样式,并在项目构建和执行时正常工作。
有什么想法吗?任何帮助都会很棒!
克里斯
【问题讨论】: