2012-06-04 47 views
0

我试图在富文本框中显示control pictures。我需要文本框保持等宽。我可以让富文本框显示控件图片吗?

当我复制粘贴说字符到Visual Studio中,他们似乎等宽和就好了。但是当显示在富文本框中时,它们只是正方形。我的IDE和文本框都使用Consolas。

我看到这在我的IDE(最后两个字符是相同的):

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

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

→␣␂␂

如何我可以将全角色图片显示出来吗?

+0

你是如何得到这些字符转换成丰富的文本框?复制粘贴?通过代码? –

+0

@JoelLucsy我正在通过'StringBuilder'建立一个字符串,然后通过代码设置文本。 – dlras2

+0

好的。在这里粘贴代码,以便我们看到。否则,我们会猜测。 –

回答

1

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

尝试你插入字符之前设置字体的丰富的编辑为Arial Unicode的MS。

+0

你知道这是Visual Studio在粘贴到IDE时如何显示它们吗? – dlras2

+0

@DanRasmussen,我知道有些应用程序会自动使用替代字体,这个过程甚至可能内置在Windows API的一部分中。我不知道Visual Studio具体是什么。 –

+0

有没有办法强制字符宽度来保持文本框等宽的时候呢? – dlras2

1

在给定的要求,似乎可以用唯一的字体是Everson Mono。例如,根据font coverage information at Fileformat.info,字符U + 2402仅包含在少数字体中,而Everson Mono(与Everson Mono Oblique一起)似乎是其中唯一的等宽字体。

使用字体的混合物,例如它所涵盖的所有字符以及其他一些等宽字体的Consolas通常不起作用:它会打破文本的等宽属性。 (在相同的字体大小不同的等宽字体不必具有相等的前进宽度,而且他们大多不知道。)

+0

我试过了。不幸的是,Visual Studio抱怨当试图通过设计器设置字体时只能使用TrueType字体。也许这是一个设计器问题,它可以通过编程设置。 – dlras2

相关问题