我是Wpf的新手,并尝试使用基于网络的教程
我创建了一个控件(类)名称 MyTextBox ,它继承自 TextBox
Public Class MyTextBox
Inherits TextBox
.
.
End Class
我在 Application.xaml
中为 TextBox 创建了样式<Application.Resources>
<Style TargetType="TextBox">
<Style.Triggers>
<Trigger Property="IsFocused" Value="True">
<Setter Property="Background" Value="Yellow"/>
<Setter Property="BorderBrush" Value="Gray"/>
<Setter Property="BorderThickness" Value="2"/>
</Trigger>
</Style.Triggers>
</Style>
</Application.Resources>
当我将MyTextBox添加到我的表单并运行它时,上面的样式适用于TextBox控件,但对MyTextBox控件没有影响
请告诉我如何解决这个问题
Amit Saraf
答案 0 :(得分:1)
您应该考虑阅读有关wpf或购买书籍的更多信息。
样式已将目标类型定义为TextBox。
<Style TargetType="TextBox">
这就是TextBox类型的所有元素都具有某种风格的原因。
MyTextBox的类型名称为“MyTextBox”,在样式化时与TextBox无关。
WPF比较类型名称,但不比较基本类型名称。
否则将样式应用于类型“Control”将使WPF更改每个Button,TextBox,Labe,ListBox,Border ... WPF中的每个控件都从基类Control类继承。这会搞砸,你不觉得吗?
但是,您可以使用关键字BasedOn指定MyTextBox的样式基于其他内容。
http://msdn.microsoft.com/en-us/library/system.windows.style.basedon%28v=vs.110%29.aspx