【发布时间】:2011-01-11 20:05:56
【问题描述】:
我正在尝试覆盖主题文件中基本控件(文本框、组合框)的默认样式。 像这样:
在主题/classic.xaml 中
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Background" Value="Black"/>
</Style>
在主题/Aero.NormalColor.xaml 中
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Background" Value="Green"/>
</Style>
但这似乎不起作用。我总是得到没有改变的默认样式。我什至用一个特定的键试了一下 喜欢
<Style x:Key="DefaultTextBoxStyle" TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Background" Value="Green"/>
</Style>
在 xaml 中声明控件时始终使用此键。似乎没有任何效果。
如果我将样式放在 application.xaml 文件中,我没有问题,但我希望这种样式依赖于主题。 顺便说一句,它适用于我自己的用户控件。
谁能告诉我我在这里做错了什么?
我知道一个解决方案可能是使用一个类来查看我使用的主题并使用某种触发器,但我真的想在 xaml 中执行此操作。
谢谢
【问题讨论】:
-
能否将app.xaml的代码包含进来?
-