WPF 固定宽度文本框字体(如十六进制编辑器)

WPF Fixed width Textbox font (Like Hex Editor)

我正在 WPF 中构建一个文件解析工具,让我调整行长度直到数据对齐。在 2:10 https://www.youtube.com/watch?v=OMeghA82kSk

左右观看此视频

我真的需要修复它,使文本具有固定的宽度。我曾想过也许做一个 DataGridView 并让每个单元格成为一个角色,但这看起来很慢而且有点傻。由于它不断地重新创建视图,因此需要相当快地执行。

我觉得我问的问题并没有那么不寻常,但我已经尝试使用所有固定宽度字体,但是当它超出正常范围控制字符时,它就站不住脚了。

我看到 v64 等其他应用程序完全符合我的要求(见下文)。我需要使用 TextBox 以外的东西吗?执行此操作的理想方法是什么?

好的,所以我找到了问题。首先,您必须指定文件编码,否则它会跳过一些字节。在我的例子中,它跳过了 \x86,这把所有东西都扔掉了。

我想出来的唯一方法是:

string shortText = File.ReadAllText("Original.dat"); 
File.WriteAllText("New.dat", shortText); 

然后逐字节分析。正确的做法是:

string shortText = File.ReadAllText("Wrapped.dat", Encoding.ASCII); 

即便如此,即使使用等宽字体,它看起来也不正确。那是因为大多数 TTF 字体没有对非字母数字内容的定义,因此您添加一个正则表达式以去除其余部分并且它有效。

shortText = Regex.Replace(shortText, @"[^\w\n',|\.@-]", " ", RegexOptions.None);