博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个WPF只能输入数字的行为。
阅读量:6672 次
发布时间:2019-06-25

本文共 2256 字,大约阅读时间需要 7 分钟。

没啥好说的,直接上代码:

public class NumberInputBehaviour : Behavior
{ protected override void OnAttached() { base.OnAttached(); InputMethod.SetIsInputMethodEnabled(AssociatedObject, false); AssociatedObject.PreviewTextInput += AssociatedObject_PreviewTextInput; AssociatedObject.TextChanged += AssociatedObject_TextChanged; AssociatedObject.LostFocus += AssociatedObject_LostFocus; } protected override void OnDetaching() { base.OnDetaching(); AssociatedObject.PreviewTextInput -= AssociatedObject_PreviewTextInput; AssociatedObject.TextChanged -= AssociatedObject_TextChanged; AssociatedObject.LostFocus -= AssociatedObject_LostFocus; } private void AssociatedObject_LostFocus(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(AssociatedObject.Text)) { if (!string.IsNullOrEmpty(NullText)) { AssociatedObject.Text = NullText; } } } private void AssociatedObject_TextChanged(object sender, TextChangedEventArgs e) { if (Convert.ToInt32(AssociatedObject.Text) == 0) { AssociatedObject.Text = "500"; AssociatedObject.SelectionStart = AssociatedObject.Text.Length; } } private void AssociatedObject_PreviewTextInput(object sender, System.Windows.Input.TextCompositionEventArgs e) { Regex re = new Regex("[^0-9]+"); e.Handled = re.IsMatch(e.Text); } public String NullText { get { return (String)GetValue(NullTextProperty); } set { SetValue(NullTextProperty, value); } } // Using a DependencyProperty as the backing store for NullText. This enables animation, styling, binding, etc... public static readonly DependencyProperty NullTextProperty = DependencyProperty.Register("NullText", typeof(String), typeof(NumberInputBehaviour), new PropertyMetadata("")); }

xaml 使用方法 :

OK....

转载于:https://www.cnblogs.com/yk250/p/10044324.html

你可能感兴趣的文章
2016年前端盘点合集
查看>>
React 16 Jest ES6级模拟 - 深入:了解模拟构造函数
查看>>
TextView中DrawableXXX图片无法设置大小的解决方案
查看>>
我的网站搭建: (第四天) 导航栏与页脚
查看>>
往"某度文库"上传资源之前,请先做好这些...
查看>>
mysql常用命令和脚本
查看>>
中国外交官有AI当参谋了!不过最后拍板的还是人类
查看>>
Spring Cloud Security系列教程一:入门
查看>>
添加gitignore文件
查看>>
菜鸟入门【ASP.NET Core】9:RoutingMiddleware介绍以及MVC引入
查看>>
Windows 使用 ln -s 创建软链接
查看>>
通信协议
查看>>
-bash: zip: command not found提示解决办法
查看>>
机器人市场机遇和挑战并存
查看>>
来看一场 AI 重建的 3D 全息世界杯比赛!
查看>>
为什么使用TypeReference
查看>>
Promise Race, 并不公平的 Race
查看>>
动态权限<三>华为小米特殊机制
查看>>
[方法总结] 如何入门一个新领域/新技术?——「以用促学知识树学习法」
查看>>
有了这四个“最”,AI或许可以成功预测地震
查看>>