【发布时间】:2015-03-13 02:10:22
【问题描述】:
也许我误解了这一切是如何工作的,你不能真正将普通的旧 XAML 文件作为数据填充到 DLL 中,以便以后获取 - 但我认为这是可能的。
我已经一遍又一遍地尝试了大约五个小时才能让它工作,所以我终于问 Stack Overflow。
我在 WPF 用户控件库项目中有一个 XAML 文件。在一个完美的世界中,我应该能够以某种方式将此 XAML 文件嵌入到 DLL 中,以便在另一个项目中引用。如果可能的话,我不想链接到原始项目文件夹或类似的东西,只是为了让所有东西都在一个地方保持美观和简单。
以下是困扰我的问题:
如果您在编译 DLL 时项目中的一个文件的编译模式设置为“资源” - 该文件是否真的被填充到 DLL 中?如果没有 - 有没有办法做到这一点?
-
假设我的资源文件在类库项目中的路径是这样的:
“MyClassLibrarySolutionRoot/StyleXAMLs/Styles.xaml”
应用文件中的URI路径我该放什么:
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="What on earth am I supposed to put here?"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
提前致谢!仅供参考,这个特殊的问题让我对尝试学习 XAML 感到有些不安,因为无法使其正常工作真的破坏了我喜欢的工作流程,基本上除了基本应用程序的代码之外的所有东西都扔到了类库中。那么,也许您可以通过向我保证我仍然可以轻松使用和引用 DLL 来恢复我对 XAML 的信心?
PS...我一遍又一遍地尝试这种 URI 的确切格式,但它不起作用:pack://application:,,,/externalDllName;component/path/dictionary.xaml
“组件”应该是“组件”这个词还是应该是“ResourceDictionary”之类的其他词?该“路径”应该是原始 DLL 项目中的文件夹名称还是其他名称?
在这里,我决定附上一张图片,因为我不知道自己做错了什么:
【问题讨论】:
-
尝试运行你的应用,看看是否有问题。
-
是的,我试过了...引发解析错误...
-
@nguyen Kien Crud - 我刚刚意识到它会将解析错误抛出到我忘记存在于类库中的不同 URI 上 - 我讨厌这些非特定的解析错误......
标签: c# wpf xaml dll resourcedictionary