0

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

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

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

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

4

1 回答 1

1

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

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

正如上面第3点所说,资源查找最终会在应用程序资源中进行搜索。所以你不需要在所有用户控件中添加相同的资源。您可以简单地将它们放在每个 UserControl 都可以访问资源的地方。

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

于 2013-11-02T08:09:00.117 回答