
我正试图find一个很好的替代scheme在windows 8瓷砖应用程序中的NumericBox。 我试着使用相同的数字框,为windows窗体存在,但得到了一个错误,说这些不支持(?)的windows 8应用程序。 我注意到,应用程序的TextBox元素有一个可以设置为“Number”的inputScope,但是它仍然允许用户input他想要的任何字符。 我认为inputScope不会做我认为的事情。
我目前正在使用文本框进行pipe理,但是由于我正在进行计算,所以当我想要更新界面时,文本必须不断地转换为十进制,然后再转换为文本,除了必须执行多个检查以确保用户不要input非数字字符。 这是非常繁琐的,对windows Form非常熟悉,这似乎是在一个错误的方向迈出的一步。 我必须失去明显的东西?
简单的grep任何一年
search10个连续的单个数字
如何在linux中模拟集成的数字键盘光标键
我不熟悉NumericTextBox ,但这里是一个简单的C#/ XAML实现,只允许数字和十进制字符。
它所做的就是重写OnKeyDown事件; 基于被按下的键,它允许或不允许该事件到达基本的TextBox类。
我应该注意到,这个实现是针对windows Store应用程序的 – 我相信你的问题是关于这种类型的应用程序,但我不是100%确定的。
public class MyNumericTextBox : TextBox { protected overrIDe voID OnKeyDown(KeyRoutedEventArgs e) { HandleKey(e); if (!e.Handled) base.OnKeyDown(e); } bool _hasDecimal = false; private voID HandleKey(KeyRoutedEventArgs e) { switch (e.Key) { // allow digits // Todo: keypad numeric digits here case windows.System.VirtualKey.Number0: case windows.System.VirtualKey.Number1: case windows.System.VirtualKey.Number2: case windows.System.VirtualKey.Number3: case windows.System.VirtualKey.Number4: case windows.System.VirtualKey.Number5: case windows.System.VirtualKey.Number6: case windows.System.VirtualKey.Number7: case windows.System.VirtualKey.Number8: case windows.System.VirtualKey.Number9: e.Handled = false; break; // only allow one decimal // Todo: handle deletion of decimal... case (windows.System.VirtualKey)190: // decimal (next to comma) case windows.System.VirtualKey.Decimal: // decimal on key pad e.Handled = (_hasDecimal == true); _hasDecimal = true; break; // pass varIoUs control keys to base case windows.System.VirtualKey.Up: case windows.System.VirtualKey.Down: case windows.System.VirtualKey.left: case windows.System.VirtualKey.Right: case windows.System.VirtualKey.Delete: case windows.System.VirtualKey.Back: case windows.System.VirtualKey.Tab: e.Handled = false; break; default: // default is to not pass key to base e.Handled = true; break; } } }
这里是一些示例XAML。 请注意,它假定MyNumericTextBox位于项目名称空间中。
<StackPanel Background="Black"> <!-- custom numeric textBox --> <local:MyNumericTextBox /> <!-- normal textBox --> <TextBox /> </StackPanel>
WinRT XAML Toolkit的Numericupdown控件可能就是你要找的。
总结以上是内存溢出为你收集整理的在Windows 8应用程序中的Numericbox的替代品?全部内容,希望文章能够帮你解决在Windows 8应用程序中的Numericbox的替代品?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)