【问题标题】:Use StaticResource in XAML root element在 XAML 根元素中使用 StaticResource
【发布时间】:2010-03-03 12:20:14
【问题描述】:

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

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

还有这个:

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

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

【问题讨论】:

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

标签: wpf xaml


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    <Window.Resources>
        <app:LeftConverter
            x:Key="LeftConverter" />
    </Window.Resources>
    
    <Window.Left>
        <Binding
            Path="UnconvertedLeft"
            Converter="{StaticResource LeftConverter}" />
    </Window.Left>
    

    【讨论】:

      猜你喜欢
      • 2013-04-16
      • 2011-03-30
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-23
      • 1970-01-01
      相关资源
      最近更新 更多