【问题标题】:Merge resources into app.xaml?将资源合并到 app.xaml 中?
【发布时间】:2012-05-09 07:54:13
【问题描述】:

面向 .NET Framework 4.0。

我有一个 UserControl (usercontrol.xaml),其中包含一些我希望可以从应用程序资源 (app.xaml) 访问的资源。 (我的 UserControl 在MainWindow.xaml 中实例化。)

到目前为止,我已经在 app.xaml 中尝试过这个:

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="usercontrol.xaml"/>
</ResourceDictionary.MergedDictionaries>

但 Visual Studio 对此抱怨: 查找资源字典“usercontrol.xaml”时出错。

问:如何将我的 UserControl 的资源添加到应用程序,以便我可以在运行时执行此操作:

Style style = FindResource("SomeStyleDefinedInUserControl") as Style;

【问题讨论】:

  • 为什么要在用户控件中定义样式?你不能把你的样式放在一个单独的资源字典里吗?
  • 我猜没有特别的原因。资源不应该在那里?
  • 如果你想分享它们,不。像你一样使用资源字典并将其添加到 App 的合并字典中。
  • 嗯,这几乎是正确的答案。虽然不能接受评论...:P

标签: wpf xaml mergeddictionaries


【解决方案1】:

如果您想共享样式,请将它们放在单独的资源字典中。

然后,像你一样将资源字典添加到 App 的合并字典中:

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="usercontrol_styles.xaml"/>
</ResourceDictionary.MergedDictionaries>

现在可以从应用程序中的任何位置访问样式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多