WPF样式自定义控件

时间:2017-08-17 14:30:52

标签: c# wpf

我有一个继承自TextBox

的班级
public class DecimalTextBox : TextBox
{

    #region Float Color 
    public static readonly DependencyProperty FloatColorProperty = DependencyProperty.Register("FloatColor", typeof(Color), typeof(DecimalTextBox), new FrameworkPropertyMetadata(Colors.Red));
    public Color FloatColor
    {
        get { return (Color)GetValue(FloatColorProperty); }
        set { SetValue(FloatColorProperty, value); }
    }
    #endregion

    . . . . ..  OTHER STUFF
}

我想使用以下内容设置此控件的样式:

<Style x:Key="DecimalTextBoxGridStyle" TargetType="DecimalTextBox">
    <Setter Property="TextAlignment" Value="Right"/>
    <Setter Property="FloatColor" Value="Black"/>
    <Setter Property="BorderBrush" Value="Transparent"/>
</Style>

但它的风格告诉我

enter image description here

在wpf项目中不会混用DecimalTexbox类型

我该怎么做?

还有另一种方法吗?

1 个答案:

答案 0 :(得分:5)

包含XAML命名空间:

<Style x:Key="DecimalTextBoxGridStyle" TargetType="local:DecimalTextBox">

其中local映射到定义了DecimalTextBox类的CLR命名空间:

<Window ...
    xmlns:local="clr-namespace:WpfApplication1"