设计时资源

时间:2009-11-02 16:40:41

标签: c# wpf xaml styles

我创建了thisthis之类的内容 实际上我有一个dll,为我的应用程序提供了一个“样式” - 它包含我的所有基本样式以及在应用程序上调用StylerFactory.DefaultStyler.ApplyStyles(this)的工厂 - 它将提供的ResourceDictionaries与现有的合并。这样我就不需要组件中的所有基本样式,也不需要显式引用我的sesource-xaml文件。
现在 - 虽然这真的很好。样式(显然)在设计时不可见 我的问题:

  1. 这种方法是明智的,还是部署xaml-resources并在每个应用程序/窗口/控件中使用它们会更好?
  2. 是否有人认为我的样式可以应用于VS2008的设计时显示?

1 个答案:

答案 0 :(得分:0)

在我看来,这是一种可接受的方法。原因是,我还没有看到更好的方法。

在我自己的情况下,我已经在运行时using the code I described here加载了资源字典,我认为这也适用于从其他程序集加载资源。缺点是设计人员不会首先运行此代码,这意味着默认情况下不会应用任何样式,这是您遇到的问题。

为了抵消这种情况,我在我需要在设计时编辑的每个<ResourceDictionary.MergedDictionaries>中添加了默认的<Window.Resources>定义。虽然这最终有点多余,但这使我有了一个工作的设计时窗口,而适当的MergedDictionary可以在运行时加载。也许你可以用它来找到更好的方法。