假设我想将应用程序中所有 StackPanel 的背景设置为某种颜色。
我在 App.xaml 中添加了以下内容:
<Style TargetType="StackPanel">
<Setter Property="Background" Value="#222222" />
</Style>
只有在 StackPanel 是纯粹的 StackPanel 时,这个方法才有效,并且 StackPanel 必须在 App 下。然而,在弹出对话框中子类的 StackPanel 或者 StackPanel 的背景颜色将不会被改变。例如:
public class MyStackPanel : StackPanel { ... }
解决子类化问题的一种方法是扩展UserControl,并将StackPanel嵌入到UserControl中。只要您不需要访问StackPanel的属性,这样做就可以了。
有什么想法吗?
如何最好地进行WPF主题设置?