7

在 WPF 中,如何引用在不同 XAML 文件中定义的静态资源?它在同一个项目中。

4

2 回答 2

9

另一个 XAML 文件需要是资源字典。您可以使用当前 ResourceDictionary 的 MergedDictionaries 属性将其合并到当前文件中。请参阅MSDN 上的合并资源字典。他们的例子:

<Page.Resources>
  <ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
      <ResourceDictionary Source="myresourcedictionary.xaml"/>
      <ResourceDictionary Source="myresourcedictionary2.xaml"/>
    </ResourceDictionary.MergedDictionaries>
  </ResourceDictionary>
</Page.Resources>

然后在该 Page 对象中,您可以引用在myresourcedictionary.xaml或 中定义的静态资源myresourcedictionary2.xaml

于 2010-09-02T21:29:10.673 回答
4

“不同的 XAML 文件”可能意味着一些不同的事情:

  • App.xaml:资源会自动包含在任何打开的资源树中,因此您无需执行任何额外操作。
  • 窗口或页面 .xaml:对象实例的任何子级都可以访问资源,例如在窗口中使用的 UserControl。
  • ResourceDictionary:需要显式合并到使用它的资源树上方的某个位置。这可以是 App.xaml、Windowxx.xaml 或一些较低级别的元素。使用 ResourceDictionary.MergedDictionaries 来执行此操作。

还有很多指定路径的替代方法,但这是最简单的:

<Window>
    <Window.Resources>
      <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
          <ResourceDictionary Source="Resources/MyResourceDict.xaml" />
        </ResourceDictionary.MergedDictionaries>
      </ResourceDictionary>
    </Window.Resources>
于 2010-09-02T21:32:39.923 回答