在WPF控件中显示特殊(不可打印)字符

zen*_*dar 5 c# wpf special-characters

我有从设备收到的原始二进制数据.我想显示像HEX编辑器那样的数据 - 显示十六进制值,但也显示相应的字符.

我发现字体有ASCII码0到32的字符,但我不能让它们显示在屏幕上.

我用WPF listbox,itemscontrol和textbox尝试了这个.

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

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

这是我正在使用的正则表达式:

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

它用一些四四方位的符号替换了这6个有问题的字符的所有出现.它表明这不是"常规可打印"字符,它适用于我.

Mar*_*erl 3

不确定这是否正是您想要的,但我建议您查看#develop项目。他们的编辑器可以显示空格、制表符和行尾标记。

我快速浏览了源代码和命名空间中的ICSharpCode.AvalonEdit.RenderingSingleCharacterElementGenerator,似乎做了您想要的事情。