在 WPF 中,如何引用在不同 XAML 文件中定义的静态资源?

发布于 2024-09-16 18:22:33 字数 48 浏览 5 评论 0原文

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

In WPF how do I reference a static resource that is defined in a different XAML file? It's in the same project.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

那一片橙海, 2024-09-23 18:22:33

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

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

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

The other XAML file will need to be a resource dictionary. You merge it into the current file using the MergedDictionaries property of the current ResourceDictionary. See Merged Resource Dictionaries on MSDN. Their example:

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

Then within that Page object you can reference static resources defined in myresourcedictionary.xaml or in myresourcedictionary2.xaml.

无所的.畏惧 2024-09-23 18:22:33

“不同的 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>

"different XAML file" could mean a few different things:

  • App.xaml: Resources are automatically included in the resource tree of anything that's opened so you don't need to do anything extra.
  • Window or Page .xaml: Resources can be accessed by any child of an instance of the object like a UserControl that is used in a Window.
  • ResourceDictionary: Needs to be explicitly merged into the resource tree somewhere above where it is used. This can be App.xaml, Windowxx.xaml, or some lower level element. Use ResourceDictionary.MergedDictionaries to do this.

There are also lots of alternate ways to specify the path but this is the simplest:

<Window>
    <Window.Resources>
      <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
          <ResourceDictionary Source="Resources/MyResourceDict.xaml" />
        </ResourceDictionary.MergedDictionaries>
      </ResourceDictionary>
    </Window.Resources>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文