信息
您所需的主题如下所示。但此主题未包含在此库中。

StaticResource 标记扩展

Silverlight

通过计算对已定义资源的引用来为任何 XAML 属性提供值。 ResourceDictionary 中定义的资源,和 StaticResource 用法在 ResourceDictionary 中引用资源密匙。

<object property="{StaticResource key}" .../>

key

所请求的资源的键。 此密匙由 x:键 属性最初分配在 XAML ResourceDictionary 中定义的资源上。 资源键可以是使用 XamlName 语法定义的任何字符串。

StaticResource 是一种技术用来获取在资源字典中其它地方定义的值。 这些值可能会放在资源字典中,因为他们打算通过多个实例和属性值来使用,或者是由于资源字典是 XAML 包装或保理技术的一部分。 XAML 包装技术的一个例子是 generic.xaml"主题" 控件的词典。 另一个例子是合并的资源字典。

在此主题中未描述 StaticResource 如何解析到资源字典,因为这取决于各种因素,例如模板是否存在引用和资源,是否使用合并的资源字典,等等。 有关如何定义资源和正确使用 ResourceDictionary 的更多信息,包括代码示例,请参见 资源字典

重要说明 重要说明:

StaticResource 不得试图对 XAML 文件中按词法进一步定义的资源进行前向引用。 不支持这种尝试,即使此类引用没有失败,当搜索表示 ResourceDictionary 的内部哈希表时,尝试进行前向引用也会导致加载时性能下降。 为了获得最佳效果,应调整资源字典的撰写方式,从而避免前向引用。

尝试将 StaticResource 指定给无法解析的键会导致 XAML 分析异常。

在 Silverlight XAML 处理器实现中,不存在后备类的表示形式。 StaticResource 仅仅用在 XAML 中,它使用 {} 语法向 XAML 处理器指示其中的内容应由标记扩展来处理。 等效代码会涉及使用 Contains API 来查询离散 ResourceDictionary

StaticResource 不能用于事件属性。 不能将事件处理程序声明为资源。 作为事件属性值引用的事件处理程序按其成员名称引用(这些成员名称在提供 XAML 页的隐藏代码的分部类中定义),并且此处未涉及资源。

StaticResource 是标记扩展。 当要求转义属性 (Attribute) 值应为非文本值或非处理程序名称时,通常会实现标记扩展,相对于只在某些类型或属性 (Property) 上放置类型转换器而言,此要求更具有全局性。 XAML 中的所有标记扩展在其属性语法中都使用 { 和 } 字符,XAML 处理器通过这一约定识别出该属性必须由标记扩展处理。

社区附加资源

显示:
© 2014 Microsoft