如何使用1 ResourceDictionary导入合并词典的深层结构



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

故障示例

<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>

内部资源库.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>

执行此操作时,它无法找到资源密钥。如果我从那个类库手动合并每个字典,它工作得很好。国际海事组织开始违背将资源提取给外部大会的目的。

成功示例

<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>

我是否将伪隐含样式放错了位置?这里有些不对劲。谢谢你的光临。

我通过玩了三天的游戏,艰难地学会了这一点。

不要制造真正深的结构。有一本正在使用其他词典的主词典。该应用程序不应该访问其他应用程序的任何内容。

但关键是要按照正确的顺序引用它们。如果你加载一个RD,其中一个内容使用了另一个尚未加载的内容,那么它就不会起作用。秩序确实至关重要。

使用WPF检查器将对您有很大帮助,因为它可以跟踪WPF应用程序中的所有donw。

最新更新