0

为了使事情井井有条并跟踪 WPF/XAML 项目中使用的所有资源名称/键,我想将资源字典中使用的所有键存储在一个填充有常量的静态类中。我想我记得在代码中避免使用字符串文字。

就像是:

<!-- itemtemplates.xaml -- a resource dictionary -->
<Style x:Key="{x:Static local:ResourceKeys.TaskItemItemTemplateKey}" ....>
    ....
</Style>

 

// ResourceKeys.cs
internal static class ResourceKeys {
    internal static object TaskItemItemTemplateKey {
       get { return __some_readonly_unique_key_object; }
    }
    internal static object SomeReallyUglyGradientBrushKey {
       get { return __some_other_unique_key; }
    }
}

这是一个好主意,考虑到我的项目可能会达到 1000 多个资源。

4

2 回答 2

1

如果您有这么多资源,您可能希望按类型、适用区域或在您的上下文中可能有意义的任何内容将其分成几个类。至于一般这样做:为什么不呢?SystemColors例如也这样做。

于 2012-08-04T14:55:10.413 回答
0

您的解决方案的问题是您必须为每个资源输入两次。这对于 1000 个项目来说是相当多的工作......可以轻松找到所有资源名称的列表(resource.Keys)。如果您使用命名约定,您可以以很少的成本对所有这些进行排序。然后,如果您想拥有颜色资源,则可以执行一些操作:在 Application.resources.Keys 中选择 rs,其中 rs.beginswith("Color")。

于 2012-08-06T10:39:41.290 回答