引用任何给定资源字典中的静态资源必须引用在该资源引用之前已经被词法上定义的资源。静态资源引用无法解析前向引用。因此,如果您使用静态资源引用,您必须设计您的资源字典结构,使预期进行进一步资源使用的资源被定义在或接近各自资源字典的开头。
这是否意味着我不能在我的App.xaml中做这样的事情:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/Colors.xaml"/>
<ResourceDictionary Source="Assets/Brushes.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
在 Brushes.xaml 中包含 SolidColorBrush、LinearColorBrush 等定义,这些定义引用了 Colors.xaml 中定义的颜色吗?
例如:
<SolidColorBrush x:Key="OrangeRedBrush" Color="{StaticResource AppOrangeRed}"/>
我会在 Colors.xaml 文件中定义我的颜色,类似这样:
<Color x:Key="AppOrangeRed">#FFBF3C1F</Color>
我遇到了一个运行时错误,它指出无法找到实例中关键字为 'AppOrangeRed' 的资源。在组织颜色和画刷以便能够重用它们方面,有哪些最佳实践(适当情况下,我理解颜色是结构体,而画刷是引用对象,详见http://weblogs.manas.com.ar/spalladino/2009/03/02/silverlight-xaml-guidelines/)。
谢谢, Rob