gpt4 book ai didi

wpf - 如何使用 1 个 ResourceDictionary 导入合并词典的深层层次结构?

转载 作者:行者123 更新时间:2023-12-02 04:59:41 25 4
gpt4 key购买 nike

我正在尝试从依赖类库项目中合并字典,但找不到资源键。 注意:我使用的是this Connect bug workaround from Microsoft这应该允许框架进行足够深入的搜索以找到嵌套的资源。这似乎不起作用。

失败示例

<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/MyApplication.ControlLibrary;component/ResourceDictionaries/ResourceLibrary.xaml" />
<ResourceDictionary>
<Style TargetType="{x:Type Line}" /> <!-- workaround from MS to allow for this -->
<Main:AppBootstrapper x:Key="bootstrapper" /> <!-- CaliburnMicro bootstrapper, unsure if this is relevant -->
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>

ResourceLibrary.xaml 内部

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="DefaultColorTheme.xaml" />
<!-- ...snip... -->
<ResourceDictionary Source="TransitionControl.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

执行此操作时,它找不到资源 key 。如果我从该类库中手动合并每个字典,它就可以正常工作。 IMO,这开始破坏将资源抽象到外部程序集的目的。

成功的例子

<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/MyApplication.ControlLibrary;component/ResourceDictionaries/DefaultColorTheme.xaml" />
<ResourceDictionary Source="/MyApplication.ControlLibrary;component/ResourceDictionaries/Images.xaml" />
<ResourceDictionary Source="/MyApplication.ControlLibrary;component/ResourceDictionaries/FontIcons.xaml" />

<ResourceDictionary>
<Style TargetType="{x:Type Line}" />
<Main:AppBootstrapper x:Key="bootstrapper" />
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>

我是否将虚拟隐式样式放在了错误的位置?这里没有加起来。感谢您的关注。

最佳答案

我玩了 3 天才学会了这一点。

不要制作非常深的结构。有一个仅使用其他词典的主词典。该应用不应访问其他应用的任何内容。

但关键是以正确的顺序引用它们。如果您加载一个 RD,其中一个内容使用另一个尚未加载的内容,它将无法工作。顺序真的很重要。

使用 WPF Inspector将对您有很大帮助,因为它可以跟踪 WPF 应用程序中的所有内容。

关于wpf - 如何使用 1 个 ResourceDictionary 导入合并词典的深层层次结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17750450/

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