我们正在编写 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风格。
我希望它是简单的,但同样,我们还没有找到它。任何人都可以帮忙吗?