我在Microsoft Visual Studio 2017中创建了一个用户控件库项目,其中包含许多样式和ControlTemplates,可用于未来的各种项目。现在我想在一个新的解决方案中引用它。
当我使用新的WPF-Application创建新解决方案时,我可以将用户控件库项目导入到解决方案中,并在我的新WPF应用程序项目中添加对它的引用 - 一切正常。但这对我来说不是一个好的解决方案,因为我不想在每次使用它时复制源代码。
...所以我试图不导入它并将其作为项目引用,而只是引用用户控件库的已编译的dll文件。原则上,从WPF-Applications的角度来看,一切都应该保持不变。但Designer没有正确找到引用的资源。在运行时,它可以很好地运行,没有错误,但在设计时,Designer会忽略引用的资源或完全崩溃。
无论如何,它的行为似乎并非一致:
"The resource "MarginStandard" can't be found."
)MarginStandard
在TextBoxOutput
中使用bin/debug
时显示错误App.xaml
所有这些在运行时以及当我将用户控件库作为项目而不是dll引用时都能正常工作。
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/UserControlLibraryName;component/RecourceDictionaryName.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
- 文件夹中。使用以下语法将用户控件库中的所有资源字典导入WPF项目的{{1}}文件中:
{{1}}
如何使用引用为dll-file的资源,以便Designer也能正确找到资源? My Styles和ControlTemplates极大地改变了控件的外观,因此在设计时能够看到结果非常必要。