0

我们有一个 WPF 库,其中包含我们许多产品中使用的样式。它的组织如下。每个缩进级别都合并到上面的库中

WpfResources.xaml
  Color.xaml
  ButtonStyle.xaml
    Color.xaml
  OtherStyle.xaml
    Color.xaml
  SliderStyle.xaml
    Color.xaml

这种方法的问题在于,正如您所见,Color.xaml 被添加到我添加的每个控件样式中。这可能会而且我不确定是否会影响性能。但是,Color.xaml 中的所有颜色画笔、边距等都被冻结。

如果我从控件 ResourceDictionaries 中删除 Color.xaml,Visual Studio 设计者将开始抱怨缺少用于颜色的 StaticResources 以及在 Color.xaml 中声明的其他内容。我可以用 DynamicResources 替换它们,但这并不明智。

关于更好地组织风格的任何想法?

4

1 回答 1

1

在我们的应用程序中,我们ResourceDictionary只有颜色。所以我们应用程序中的每种颜色都加载到这个文件中。然后我们有XAML所有控件的样式和模板文件,而不是像你说的那样分开的。

我学到的一件事是,如果你在重复某件事,它可能会更好。这是我们的App.xaml文件,仅作为示例。请记住,Color.xaml您可以制作很多主题/皮肤!
当有人要求一种新款式时,只需大约 10 分钟即可完成!这里是:

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="pack://application:,,,/Cmp.Wpf;component/CmpEstilos/Colors.xaml" /> <!-- Our Colors are here! -->
    <ResourceDictionary Source="pack://application:,,,/Cmp.Wpf;component/CmpEstilos/Styles.xaml" /> <!-- Our Styles are here! -->
    <ResourceDictionary Source="pack://application:,,,/Cmp.Wpf;component/CmpTemplates/Templates.xaml" /> <!-- Our Templates are here! -->
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

这段代码在里面App.xaml——只是为了提醒你。
没有反对您的方法,但我认为如果您有一个文件负责每个“责任”,那么维护起来会更容易。

祝你好运。

于 2013-11-12T10:53:32.493 回答