我通常在tab下的App.xml中定义样式和控件模板。 因此,在设计UI时,我可以在带有.NET3.5的Visual Studio 2008中看到设计视图中应用了样式的UI。
但是,在另一种情况下,有时我只使用UserControl项目,在这种情况下,没有App.xml,因此UI在设计视图中显示为默认外观。很难在运行时了解实际情况。
有没有办法将样式应用于UserControl? 如果有一种方法可以在应用程序项目和UserControl项目之间共享相同的样式和模板,那将是完美的!
如果有解决方案,请告诉我。
答案 0 :(得分:4)
您可以将样式保存在控件项目中的单独ResourceDictionary中。然后,您需要在每个用户控件顶部的Resources块中Merge Dictionaries:
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MyControlLibraryStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
这种方法的问题当然是你会失去App级别样式给你带来的任何好处(比如不同的应用程序的样式),因为现在样式都是由底层控件决定的。