【发布时间】:2015-06-15 06:35:04
【问题描述】:
只是想知道......对于共享定义(例如颜色、画笔),将其放在资源字典(在 XAML 中)还是代码隐藏(C#)中更好?假设:这些定义的使用在 XAML 和代码隐藏中。
例如颜色定义,似乎我从互联网上阅读的每个教程都会将其放入资源字典 - <SolidColorBrush x:Key="Color1" Color="#cccccc"/>。
但是,如果将其作为public static SolidColorBrush Color1 = new SolidColorBrush(#cccccc); 放入代码隐藏中并通过x:Static 扩展-{x:Static local:MyColor.Color1} 在XAML 中访问它会不会更好?
通过这种方式,我可以在 XAML 和代码隐藏中获得很好的智能感知。另外,避免后面代码中的key硬编码-SolidColorBrush Color1 = FindResource("Color1") as Style。
编辑: 我的目标是:
- 在 xaml 和代码隐藏中都有很好的智能感知
- 统一定义以确保不会因硬编码而出现运行时错误
- 更好的性能
这样当设计者访问 XAML 代码中的Background="{StaticResource Color1}" 时,它与代码隐藏中的TextBlock.Background = Color1; 是一样的。而且当有人要更改x:Key="Color1"时,至少会出现编译错误。
【问题讨论】:
-
如果将它们放在 ResourceDictionary 中,将整个字典换成另一个字典并更改外观会容易得多。另外,您可以比在代码中更容易地在 xaml 中合并 ResourceDictionaries。
标签: wpf xaml resourcedictionary