假设我想将应用程序中所有 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 主题化的最佳方法是什么?