WPF固定宽度文本框字体(如Hex编辑器)

时间:2018-11-09 06:44:24

标签: c# wpf fonts fixed-width hex-editors

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

周围的视频

我真的需要修复它,以使文本具有固定的宽度。我曾考虑过做一个DataGridView并将每个单元格都作为一个字符,但这似乎很慢而且很愚蠢。由于它会不断重新创建视图,因此需要相当快地执行。

我觉得我要问的不是什么异常,但是我尝试使用所有固定宽度字体,但是当它超出正常范围的控制字符时,它就不会出现。

我看到其他应用程序(例如v64)可以完全满足我的需求(请参见下文)。我是否需要使用TextBox以外的其他东西?这样做的理想方式是什么?

enter image description here

1 个答案:

答案 0 :(得分:1)

好,所以我发现了问题。首先,您必须指定文件编码,否则它将跳过一些字节。在我的情况下,它跳过了\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);