我有一个正在制作我的可执行文件的主项目。在App.xaml中,我定义了一些基本样式。 现在我想在其他项目(dll)中分别在其他项目中使用这些样式。 我在stackoverflow中阅读了有关此问题的所有问题,但它对我不起作用。 可能是,我遇到了这个问题,因为我想使用主项目引用的库中的样式?
谢谢,Alex
答案 0 :(得分:2)
您应该将这些样式移动到可由多个项目/应用程序使用的单独Resource Dictionary。
创建资源字典并将其添加到项目中,然后在App.xaml中引用它:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="\shared\MyResources.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
答案 1 :(得分:2)
创建一个新的WPF用户控件库,向此项目添加ResourceDictionary
并将样式从App.xaml
移动到此ResourceDictionary
。然后,从WPF应用程序和要使用这些样式的任何其他应用程序向此新项目添加引用(项目 - >在Visual Studio中添加引用),并将ResourceDictionary
合并到App.xaml
中}:
<Application x:Class="WpfApplication1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/WpfControlLibrary1;component/ResourceDictionary1.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application>
显然,您需要将“WpfControlLibrary1”和“ResourceDictionary1”分别更改为新项目的实际名称和ResourceDictionary
。
通过这种方式,您可以将常用样式移动到可以在许多不同应用程序中使用的独立程序集。