如何在C#的RichTextBox中对齐文本?

16

如何在RichTextBox中对齐文本?

RTB

基本上,RTB 包含以下内容:

"--testing"

"--TESTING"

"TESTING--"

"testing--"

它们都有相同数量的字符,但是对齐方式不同。我该如何正确地对齐它们?我对C#还比较新,因为在Java的TextArea中它是对齐的,所以感到困惑。

谢谢!


在这种情况下,“对齐”是什么意思? - ChrisF
5个回答

43

您想要使用RichTextBox.SelectionAlignment属性。

例如,如果您想要整个文本框居中,那么您可以这样做:

richTextBox1.SelectAll();
richTextBox1.SelectionAlignment = HorizontalAlignment.Center;

如果您只想让文本框的部分具有特定的对齐方式,则可以使用 RichTextBox.Select() 函数选择文本,然后设置 SelectionAlignment 属性。

3
在RichTextBox追加文本时,我是否能定义文本的对齐方式?否则,我得先追加文本,然后找到我插入的文本、选择它,再更改它的对齐方式。 - dragan.stepanovic
在WPF中不存在SelectionAlignment:( - T4NK3R
是的,在WPF中不存在SelectionAlignment。我们如何在WPF中实现相同的功能? - Sreejith Krishnadas

9

你需要将字体更改为等宽字体,如Courier。这种行为在大多数字体中都是标准的,因为不是所有字符的宽度都相同。


我简直不敢相信问题如此简单。我试过其他字体,但不幸的是它们不是等宽字体,所以我放弃了。谢谢你! - user488792
1
简单、基础而又出色。如此明显,然而我永远不会想到它... - AndyUK

4
richTextBox1.SelectAll();
richTextBox1.SelectionAlignment = HorizontalAlignment.Center;
richTextBox1.DeselectAll();

7
虽然这段代码可能回答了问题,但提供有关它是如何解决问题的背景和/或原因,可以提高答案的长期价值。 - Donald Duck

1

除非你有必要使用富文本框,否则你可以简单地使用文本框并选择对齐方式。

textbox.TextAlign = HorizontalAlignment.Center;/*could be left, right or center*/

0
RichTextBox1.SelectionAlignment = HorizontalAlignment.Center;

或者

GetRichTextBox().SelectionAlignment = HorizontalAlignment.Center;

适用于多个页面。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接