Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按键验证_C#_Wpf_Xaml - Fatal编程技术网

C# 按键验证

C# 按键验证,c#,wpf,xaml,C#,Wpf,Xaml,我有以下WPF代码来验证按键,根据按键情况,它要么允许用户输入按键,要么简单地停止按键事件以停止输入无效按键 <TextBox PreviewKeyDown="PreviewKeyDown" /> 我的问题是,这是在WPF中进行验证的正确方法吗。。我想限制用户输入无效字符 我知道我可以使用依赖属性和调用验证,然后显示错误或成功消息,但我不想走得太远,我只想阻止用户输入无效字符。对我来说似乎是一种有效的方法,但是我会尝试显示一些消息,告诉用户某个字符何时无效,否则他们可能会认为有东西

我有以下WPF代码来验证按键,根据按键情况,它要么允许用户输入按键,要么简单地停止按键事件以停止输入无效按键

<TextBox PreviewKeyDown="PreviewKeyDown" />
我的问题是,这是在WPF中进行验证的正确方法吗。。我想限制用户输入无效字符


我知道我可以使用依赖属性和调用验证,然后显示错误或成功消息,但我不想走得太远,我只想阻止用户输入无效字符。

对我来说似乎是一种有效的方法,但是我会尝试显示一些消息,告诉用户某个字符何时无效,否则他们可能会认为有东西坏了

通过子类化
TextBox
并提供允许使用哪些字符的属性,使逻辑成为泛型也是一个好主意。一些库已经有了这样的控件,比如扩展WPF工具包的控件,它还提供了格式高亮显示

private void PortPreviewKeyDown(object sender, KeyEventArgs e)
{
    bool allowedKeys;
    allowedKeys = // logic for validation

    e.Handled = allowedKeys;
}