【发布时间】:2016-09-06 15:51:49
【问题描述】:
在学习 WPF 的过程中,我创建了一种样式,它将圆角应用于文本框并设置背景颜色(如果控件具有焦点):
<Style TargetType="TextBox" x:Name="efTextBoxStyle">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate >
<Border x:Name="border" BorderThickness="1" CornerRadius="2">
<ScrollViewer x:Name="PART_ContentHost"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsFocused" Value="True">
<Setter TargetName="border" Property="BorderBrush" Value="Red"/>
<Setter Property="Background" Value="Blue"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
在运行时,如果控件获得焦点,边框会按预期呈现为红色,但文本框的背景色不会变为蓝色。
怎么了?
【问题讨论】:
-
您忘记了 targetname=border。现在它没有设置背景。
-
@DannyvanderKraan 据我了解的问题,Michael 想要更改文本框背景,而不是边框的背景。
-
是的,但他替换了控制器模板。那么这个模板中的文本框是什么?
-
我和 enkryptor 在同一页面上,但现在它可以工作了。谢谢。
标签: wpf