如何在MVVM Light中使用MainSkin.xaml?

e36*_*6M3 3 wpf mvvm-light

我目前定义了一些静态资源和一种在我的窗口中使用这些资源的样式.我想将该标记移动到MainSkin.xaml,然后能够在我需要该样式的所有窗口中引用它.

如果我只是简单地移动标记,我会得到一个"在'System.Windows.StaticResourceExtension'上提供值'"异常.我假设它找不到我引用的样式?我需要以某种方式合并/链接它吗?

LBu*_*ion 7

在WPF和Silverlight中,您可以创建所需的任意数量的资源字典.这纯粹是资源的逻辑组织.添加到外部资源字典中然后合并到其中的Page.Resources资源与直接添加到的资源之间没有区别Page.Resources.

实际上,我们通常会定义许多资源字典:

  • 全局资源字典:将它们合并到一起App.xaml,这使它们可以自动用于应用程序中的所有页面/窗口/用户控件.
  • 特定资源字典,包含特定于给定窗口,页面/用户控件的资源.

MainSkin.xaml应该是特定的MainWindow(如名称所示).这只是一个建议,您可以随心所欲地执行;)但是在您的情况下,如果您有多个地方使用的资源,我宁愿创建一个全局资源字典,将其合并到App.xaml那里并添加它们.

干杯,洛朗