【发布时间】:2012-08-31 13:01:58
【问题描述】:
假设我想将应用程序中所有 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 主题化的最佳方法是什么?
【问题讨论】:
-
@AdiLester 弹出对话框/窗口中的控件怎么样?有没有办法在不复制样式的情况下应用相同的外观和感觉?
标签: c# wpf xaml wpf-controls themes