gpt4 book ai didi

c# - 将 WPF XAML 资源字典添加到 DLL

转载 作者:太空宇宙 更新时间:2023-11-03 13:10:26 24 4
gpt4 key购买 nike

也许我误解了这一切是如何工作的,你不能真正将普通的旧 XAML 文件作为数据填充到 DLL 中,以便以后可以抓取 - 但我认为这是可能的。

我已经一遍又一遍地尝试了大约五个小时才能让它工作,所以我终于问了 Stack Overflow。

我在 WPF 用户控件库项目中有一个 XAML 文件。在一个完美的世界中,我应该能够以某种方式将此 XAML 文件嵌入到 DLL 中以供在另一个项目中引用。如果可能的话,我不想链接到原始项目文件夹或类似的任何东西,只是为了让一切都简单明了并放在一个地方。

下面是困扰我的问题:

  1. 如果您使用项目中编译模式设置为“资源”的文件编译 DLL - 该文件是否真的被填充到 DLL 中?如果没有 - 有没有办法做到这一点?

  2. 假设我的资源文件在类库项目中的路径是这样的:

    “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

“component”应该是“component”这个词还是应该是“ResourceDictionary”之类的其他词?该“路径”应该是原始 DLL 项目中文件夹的名称还是其他名称?

在这里,我决定放一张图片,因为我不知道我做错了什么:

enter image description here

最佳答案

好吧,虽然听起来很愚蠢,但我没有仔细观察,最终发现它在类库的完全不同部分的 URI 上引发了解析错误。

导致我被误导的是试图向 App.xaml 添加资源字典。 IDE 一直给我错误“此项目未引用程序集”,这让我相信解析错误是 URI 与底层错误的结果,我什至没有停下来考虑它是 C# 代码中的 URI在引发解析错误的类库中。

很抱歉在这里浪费了人们的时间 - 但要吸取的小教训如下:

当尝试在 XAML 代码中引用外部程序集时,Visual Studio 偶尔会出现错误,这可能会导致您查看解析异常的错误部分。

关于c# - 将 WPF XAML 资源字典添加到 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29023754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com