如何使用WPF和.Net 4.5从不同的项目加载ResourceDictionary



我在一个解决方案中有两个项目

  • 项目1
  • 通用组件

我正在尝试编写一个主题,该主题将在各种项目中重复使用,并且我在Resources/Theme.xaml下的CommonComponents中保存了该文件。

根据这个答案,在Project1中,我将其添加到主窗口的XAML文件中:

<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/CommonComponents;Resources/Theme.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>

但它不起作用,应用程序在初始化窗口时崩溃。

无论我往哪里看,这些信息要么看起来过时了,要么就不起作用了。我不明白为什么这不起作用。

**更新**

这是Theme.xaml的内容,没什么,我只想先测试导入。

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="Button">
<Setter Property="Background" Value="Red" />
</Style>
</ResourceDictionary>

我缺少component部分。

<ResourceDictionary Source="pack://application:,,,/CommonComponents;Resources/Theme.xaml" />

更改为

<ResourceDictionary Source="pack://application:,,,/CommonComponents;component/Resources/Theme.xaml" />

现在它起作用了。

相关内容

  • 没有找到相关文章

最新更新