我们正在编写TextBox的自定义子类,我们只需要更改该样式的一些基本部分。现在我们知道你何时继承Control
,通常你应该改变像这样的元数据......
public class EnhancedTextBox : TextBox
{
static EnhancedTextBox()
{
// Commenting this line out lets this use the default TextBox style.
DefaultStyleKeyProperty.OverrideMetadata(
typeof(EnhancedTextBox),
new FrameworkPropertyMetadata(typeof(EnhancedTextBox)));
}
}
这会将用于该子类类型的键更改为类型本身,这意味着它不再获取默认的TextBox样式。没什么大不了的...我们只是评论该行,它再次起作用,因为键仍然设置为TextBox直接使用的值。
但是,我们想知道我们是否想要更改样式中的一些内容,而不是整个样式,我们可以简单地创建一个新样式并设置其BasedOn
财产......但我们在那里设置了什么?我们不想手动拔出XAML并创建新样式,给它一个键,然后使用StaticResource,但是我们还没有找到我们可以在那里设置说'这是基于TextBox风格。
我希望它简单但又一次,我们还没有找到它。有人可以帮忙吗?
答案 0 :(得分:5)
就像那样......我找到了它。男人,我自己说这是显而易见的,我错过了它!
<Style TargetType="{x:Type local:EnhancedTextBox}"
BasedOn="{StaticResource {x:Type TextBox}}">
....
</Style>
在这里找到它...... WPF style basedon current