2010-07-16 34 views
4

我有从设备收到的原始二进制数据。我希望显示像HEX编辑器那样的数据 - 显示十六进制值,但也显示相应的字符。在WPF控件中显示特殊(不可打印)字符

我发现字符有ASCII码0 - 32的字符,但我无法让它们显示在屏幕上。

我试着用WPF列表框,项目控件和文本框。

有一些设置可以使这项工作?
或者也许一些WPF控件会显示这个字符?

编辑:
经过一些思考和测试,只有使问题字符是换行,换页,回车,退格,水平和垂直选项卡。作为快速解决方案,我决定用ASCII 16(10HEX)字符替换这些字符。我用ASCII,UTF-8和Unicode文件测试了它,它可以与这三种格式一起使用。

这里是正则表达式,我使用这个:

rawLine = Regex.Replace(inputLine, "[\t\n\r\f\b\v]", '\x0010'.ToString()); 

它取代的这6点问题的字符所有出现的一些迹象四四方方。它表明,这不是“常规打印”字符,它适用于我。

+3

我意识到这是一个非常古老的帖子,但是无论如何:你发现哪些字体包含非打印控制代码的图形?我正在开发一个应用程序,我需要向用户显示这些隐藏的字符(很像记事本++的视图 - >显示符号 - >显示所有字符)。更特别的是,我需要在串行数据流中常见的NULL,STX,ETX,ENQ等字符的图形表示。 – 2014-12-13 01:55:25

+0

我不太确定,但我认为这是新快递。或者也许是Consolas。但绝对不是比例字体。 对不起,我无法检查,因为我无法再访问该项目。 – zendar 2014-12-15 11:45:53

回答

2

不知道这是否令人兴奋,你想要什么,但我会建议你看看#develop项目。他们的编辑器可以显示空格,制表符和行尾标记。

我有一个快速浏览源代码和命名空间ICSharpCode.AvalonEdit.RenderingSingleCharacterElementGenerator类,似乎做你想做的。

+0

谢谢,我会检查一下 – zendar 2011-02-13 02:01:25