如何在应用程序中组织资源字典文件(样式,画笔)等?

时间:2011-06-14 13:06:41

标签: wpf styles

哪种方法可以在应用程序中组织资源文件?目前在我的应用程序中,我的资源被添加到具有以下结构的ResourceLib项目中:

颜色[文件夹]

  • ColorTheme1.xaml
  • ColorTheme2.xaml
  • ColorTheme2.xaml 。 。

StyleResource [文件夹]

  • Button.xaml
  • ToggleButton.xaml
  • TextBox.xaml
  • ListBox.xaml
  • Treeview.xaml 。 。 。

HeaderStyle [文件夹]

  • HeaderStyle1.xaml
  • HeaderStyle2.xaml 。 。 。 等

随着时间的推移,此列表将继续增加。

在App.xaml中,我引用了这个库并合并这些字典文件进行一次初始化。 DynamicResource用于支持主题工具。

如果继续使用此结构,是否会对性能产生影响?如果我将所有这些xaml放入一个资源名称(Style.xaml),是否有任何优势或性能影响?

使用5000行的Style.xaml与将其分成10个不同的xaml文件有什么性能影响?

最后,哪种方法最好或被接受?

2 个答案:

答案 0 :(得分:29)

我工作的公司做了很多WPF和Silverlight工作。我已经开发了一个组织结构,我们现在在所有项目中都使用它。该结构和文章可以在这里找到:

http://projekt202.com/blog/2010/xaml-organization/

答案 1 :(得分:2)

我不确定你是否会获得任何表现,因为无论如何一切都会堆积在一个大字典对象中。即使有任何收获,也不要去追求它。您拥有不同xaml的可维护性很难折衷。

说过这个DynamicResource是一个性能匮乏的操作,你可能需要Freeze画笔和图像。加: xmlns:PresentationOptions="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options"

<SolidColorBrush x:Key="HeaderBrush" Color="Black" PresentationOptions:Freeze="True"/>