0

我正在尝试在富文本框中显示控件图片。我需要文本框保持等宽。

当我将所述字符复制粘贴到 Visual Studio 中时,它们看起来是等宽的并且很好。但是在富文本框中显示时,它们只是正方形。我的 IDE 和文本框都在使用 Consolas。

我在我的 IDE 中看到了这一点(最后两个字符是等效的):

richtextbox.Text = new string(new[] {'→', '␣', '␂', '\u2402'});

但我的文本框显示前两个字符,然后是两个框:

→␣␂␂

我怎样才能得到完整的人物图片来显示?

4

2 回答 2

1

Windows 中很少有字体包含大量来自 Unicode 字符集的古怪字符。当我将您的一个控制字符粘贴到 Word 中时,它会将其转换为 Arial Unicode MS 字体,这似乎是字体中不可用的字符的备份。

在插入字符之前,尝试将 Rich Edit 中的字体设置为 Arial Unicode MS。

于 2012-06-04T18:38:37.467 回答
1

根据给定的要求,您可以使用的唯一字体似乎是Everson Mono。例如,根据Fileformat.info 上的字体覆盖信息,字符 U+2402 仅包含在少数字体中,而 Everson Mono(连同 Everson Mono Oblique)似乎是其中唯一的等宽字体。

使用混合字体,例如它涵盖的所有字符的Consolas 和一些其他等宽字体通常不会起作用:它会破坏文本的等宽属性。(相同字体大小的不同等宽字体不需要具有相同的提前宽度,而且它们大多没有。)

于 2012-06-04T19:25:39.607 回答