gpt4 book ai didi

wpf - 单独库中的嵌套资源字典

转载 作者:行者123 更新时间:2023-12-01 19:42:18 25 4
gpt4 key购买 nike

我的问题与此非常相似one

我有多个项目的解决方案。有两个是相关的:一个包含 WPF 窗口的类库和一个包含所有 WPF 样式的项目。

项目 1 中带有窗口的类库

Window 的合并字典是这样的:

  <ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/StyleAssembly;component/CommonStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>

//other styles here

项目 2 中的 CommonStyle.xaml:

<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Components/Type/CheckBox.xaml"/>
</ResourceDictionary.MergedDictionaries>

这会导致如下错误:

{"Cannot locate resource 'components/type/checkbox.xaml'."}

但是,如果我在项目 1 中创建一个 CommonStyle.xaml 并从项目 2 中引用相同的控件样式,那么它就可以工作。

如何使最高级别的 xaml 文件 (CommonStyle.xaml) 在项目 2 中工作?

最佳答案

我目前无法对此进行测试,但我希望它能正常工作。

在项目 2 中使用相对路径而不是根路径,即

<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Components/Type/CheckBox.xaml"/>
</ResourceDictionary.MergedDictionaries>

您也可以根据需要使用 .. 导航到相关目录(取决于 CommonStyle.xaml 的位置),例如

<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../Components/Type/CheckBox.xaml"/>
</ResourceDictionary.MergedDictionaries>

我相信当您使用根路径(以 / 开头)时,它会在您使用 CommonStyle 的项目的根目录中查找 CheckBox.xaml .xaml 而不是相对于 CommonStyle.xaml 的位置。

补充说明

根据您的描述,您似乎具有以下结构:

- Project 1
- Window.xaml
- Project 2
- CommonStyle.xaml
- Components
- Type
- CheckBox.xaml

CommonStyle.xaml 引用 / 时,它通常引用项目 2 的根目录,但是当您将其合并到 Window.xaml / 现在将引用项目 1 的根目录,随后它无法找到 Components/Type/CheckBox.xaml

通过删除 /,它现在将查找相对于 CommonStyle.xaml 位置的 Components/Type/CheckBox.xaml能够做到。

关于wpf - 单独库中的嵌套资源字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25023671/

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