我有以下从TextBox继承的自定义控件:
class MyTextBox : TextBox {
//custom properties, events and functions
}
像这样使用
<TextBox Width="100" Height="30" Text="TextBox" Margin="20" />
<local:MyTextBox Width="100" Height="30" Text="12345" Margin="20" />
我在项目中使用了Material Design In XAML Toolkit,效果很好,只是MyTextBox没有“材质效果”,如下面的屏幕截图所示。
我应该怎么做才能在MyTextBox中赋予这种材料设计风格?
最佳答案
样式通过属性TargetType
应用。创建新类型时,不会将其用作TextBox
来应用MaterialDesignTextBox
样式。
您必须具有一种样式,该样式可能是VisualStudio在MyricBox的Generic.xaml中自动创建的。您需要将其更改为:
<Style TargetType="{x:Type controls:MyTextBox}" BasedOn="{StaticResource MaterialDesignTextBox}"/>
因此WPF知道将样式应用于
MyTextBox
类型和TextBox