在XAML根元素中使用StaticResource

12
我想在xaml文档的根元素中使用StaticResource,但是MSDN说:

资源字典内的静态资源引用必须引用已经在该资源引用之前按照词法顺序定义的资源。无法通过静态资源引用来解析前向引用。

还有这个:

查找过程然后向上遍历逻辑树,到达父元素及其资源字典。这将持续到达根元素。

我应该在应用程序中定义我的资源还是从代码中创建它?

其实我对任何事情都持开放态度... - naeron84
你真的需要从根元素访问它吗?从顶层子元素引用它不就足够了吗? - TabbyCool
根元素是一个窗口,我想要绑定的是Left属性。我忘了提到StaticResource是一个转换器(实现了IValueConverter)。 - naeron84
2个回答

17

你实际上可以将任何属性设置为元素和属性,包括像Window.Left这样简单的属性。

这意味着在声明资源之后,您可以设置Left的值。

<Window.Resources>
    <app:LeftConverter
        x:Key="LeftConverter" />
</Window.Resources>

<Window.Left>
    <Binding
        Path="UnconvertedLeft"
        Converter="{StaticResource LeftConverter}" />
</Window.Left>

2
如果您真的需要从根元素访问ResourceDictionary,您可以尝试将其作为DynamicResource而不是StaticResource进行引用 - 我不确定它是否有效,但值得一试。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接