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

Aki*_*24x 8 c# wpf user-controls styles controltemplate

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

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

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

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

Dan*_*ght 4

您可以将样式保存在控制项目中单独的ResourceDictionary中。然后,您需要在每个用户控件顶部的资源块中合并字典:

<UserControl.Resources>
   <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
         <ResourceDictionary Source="MyControlLibraryStyles.xaml"/>
      </ResourceDictionary.MergedDictionaries>
   </ResourceDictionary>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)

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