在WPF中,如何在设计视图中将样式应用于UserControl?

时间:2011-02-18 06:14:03

标签: c# wpf user-controls styles controltemplate

我通常在tab下的App.xml中定义样式和控件模板。 因此,在设计UI时,我可以在带有.NET3.5的Visual Studio 2008中看到设计视图中应用了样式的UI。

但是,在另一种情况下,有时我只使用UserControl项目,在这种情况下,没有App.xml,因此UI在设计视图中显示为默认外观。很难在运行时了解实际情况。

有没有办法将样式应用于UserControl? 如果有一种方法可以在应用程序项目和UserControl项目之间共享相同的样式和模板,那将是完美的!

如果有解决方案,请告诉我。

1 个答案:

答案 0 :(得分:4)

您可以将样式保存在控件项目中的单独ResourceDictionary中。然后,您需要在每个用户控件顶部的Resources块中Merge Dictionaries

<UserControl.Resources>
   <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
         <ResourceDictionary Source="MyControlLibraryStyles.xaml"/>
      </ResourceDictionary.MergedDictionaries>
   </ResourceDictionary>
</UserControl.Resources>

这种方法的问题当然是你会失去App级别样式给你带来的任何好处(比如不同的应用程序的样式),因为现在样式都是由底层控件决定的。