我有一个名为UserControl
的{{1}},其继承自InputSensitiveTextBox
。它有一个我定义的名为TextBox
的属性,其类型为CurrentInputType
(值为MyControlsNamespace.SupportedInputTypes
,Keyboard
,Mouse
,Touchpad
)。我需要在Xaml中设置此属性,就像我可能设置VirtualKey
或HorizontalAlignment
一样:
ScrollbarVisibility
请告知:)
答案 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中,您可以定义默认值..
希望这可以解决您的问题!