2010-03-03 35 views
10

我想在xaml文档的根元素中使用StaticResource。 但MSDN说:从 内在XAML根元素中使用StaticResource

静态资源引用资源字典必须引用已经在资源 引用之前定义 词法一个 资源。正向引用不能由 参考静态资源解决。

这:

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

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

+0

其实我对任何东西都是开放的...... – naeron84

+0

你真的需要从根元素访问它吗?从顶级子元素引用它是不够的吗? – TabbyCool

+0

根元素是一个窗口,我想要绑定的是Left属性。我忘记提及StaticResource是一个转换器(实现IValueConverter)。 – naeron84

回答

11

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

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

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

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

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

+0

我试过了。它不起作用。 – naeron84

相关问题