none
<ResourceDictionary>中既有直接资源又有合并的资源时,资源找不到? RRS feed

  • 问题

  • app.xaml

        <Application.Resources>
            <ResourceDictionary>
                <SolidColorBrush x:Key="appBrush" Color="Red"/>
    
    
    
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary  Source="Dictionary1.xaml"/>
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
        </Application.Resources>

    Dictionary1.xaml

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <ControlTemplate x:Key="ct">
            <Rectangle Fill="{StaticResource appBrush }"/>
        </ControlTemplate>
    </ResourceDictionary>

    然后MainWindow用定义的这个ControlTemplate:

    <Control Template="{StaticResource ct}"/>

    运行一下,提示说无法找到appBrush。请问怎么回事呢?


    2012年7月25日 5:56

答案

  • app.xaml中

        <Application.Resources>
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary>
                        <SolidColorBrush x:Key="appBrush" Color="Red"/>
                    </ResourceDictionary>
                    <ResourceDictionary  Source="Dictionary1.xaml"/>
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
        </Application.Resources>

    就可以了。

    这几天论坛上没什么人来答题啊。。。

    2012年8月1日 1:35

全部回复

  • 你好, 

    试试将

    <Rectangle Fill="{StaticResource appBrush }"/>
    改成

     <Rectangle Fill="{DynamicResource appBrush }"/>


    Annabella Luo[MSFT]
    MSDN Community Support | Feedback to us

    2012年7月26日 6:48
    版主
  • dynamic明确可以。但效率比static低。

    为什么static不行?

    2012年7月26日 11:28
  • app.xaml中

        <Application.Resources>
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary>
                        <SolidColorBrush x:Key="appBrush" Color="Red"/>
                    </ResourceDictionary>
                    <ResourceDictionary  Source="Dictionary1.xaml"/>
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
        </Application.Resources>

    就可以了。

    这几天论坛上没什么人来答题啊。。。

    2012年8月1日 1:35