在WPF中,针对byte类型的输入控件可以选用 XCEED 的免费库中的 Xceed.Wpf.Toolkit.ByteUpDown(可从nuget获取)。
若要使该控件在界面上以16进制显示byte,则将其 FormatString="X" 即可。
然而此时,在其中键入数字时,仍然是按照 10 进制输入(例如,键入‘A’,会失败,键入‘16’,会显示‘10’),那如何令其接受 16 进制的输入呢?
可新建用户控件,使其直接继承自 Xceed.Wpf.Toolkit.ByteUpDown ,并重写 ConvertTextToValue 方法:
protected override byte? ConvertTextToValue(string text) { //输入hex字符串 return System.Convert.ToByte(text, 16); }
在界面上使用该用户控件即可。