每个UserControl的资源字典合并

时间:2013-11-02 07:19:37

标签: c# wpf xaml dictionary

对于我项目中的每个UserControl。 我添加到XAML以合并字典:

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="MyStyles.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>

必须有可用的自定义样式和颜色。

告诉我这样做是否正确? 它不会降低性能吗?

1 个答案:

答案 0 :(得分:1)

通过遍历逻辑树来解析资源。来自MSDN -

  
      
  1. 查找过程检查由设置属性的元素定义的资源字典中的请求密钥。
  2.   
  3. 然后,查找过程向上遍历逻辑树,到父元素及其资源字典。这一直持续到   到达了根元素。
  4.   
  5. 接下来,检查应用程序资源。应用程序资源是由资源字典中定义的资源   WPF应用程序的应用程序对象。
  6.   

如上面第3点所述,资源查找最终将在应用程序资源中进行搜索。因此,您不需要在所有UserControl中添加相同的资源。您可以简单地将它们放在每个UserControl可以访问资源的位置。

简而言之,App.xaml是放置所有用户控件所需的合并资源字典的正确位置。