具有Enum类型属性的WPF用户控件

时间:2009-07-31 15:33:05

标签: wpf textbox enums

我有一个名为UserControl的{​​{1}},其继承自InputSensitiveTextBox。它有一个我定义的名为TextBox的属性,其类型为CurrentInputType(值为MyControlsNamespace.SupportedInputTypesKeyboardMouseTouchpad)。我需要在Xaml中设置此属性,就像我可能设置VirtualKeyHorizontalAlignment一样:

ScrollbarVisibility

请告知:)

2 个答案:

答案 0 :(得分:2)

您需要使用Static标记扩展来引用xaml中的枚举,并且还需要将其命名空间添加到命名空间声明中。

xmlns:MyControlsNamespace ="clr-namespace:MyControlsNamespace"

<MyControlsNamespace:InputSensitiveTextBox 
    CurrentInputType="{x:Static MyControlsNamespace:SupportedInputTypes.Keyboard}"
    />

答案 1 :(得分:1)

您的CurrentInputType是依赖属性吗?

如果不是,这里是替换旧属性的代码:

public SupportedInputTypes CurrentInputType
{
    get { return (SupportedInputTypes)GetValue(CurrentInputTypeProperty); }
    set { SetValue(CurrentInputTypeProperty, value); }
}

// Using a DependencyProperty as the backing store for CurrentInputType.  This enables animation, styling, binding, etc...
public static readonly DependencyProperty CurrentInputTypeProperty =
    DependencyProperty.Register("CurrentInputType", typeof(SupportedInputTypes), typeof(InputSensitiveTextBox), new PropertyMetadata(SupportedInputTypes.Keyboard));

在PropertyMetadata中,您可以定义默认值..

希望这可以解决您的问题!