写到textview的左侧和右侧

时间:2018-03-30 22:06:25

标签: c# styling text-alignment

我希望能够写入文本字段的左侧和右侧,具体取决于邮件是从用户还是服务器发送。

到目前为止,我有这个:

if (Equals(first, Name))// checks if im the one sending message 
{
    BeginInvokeOnMainThread(delegate
    {                            
        OutgoingText.Text += StateObject.Response + "\n";
        OutgoingText.TextAlignment = UITextAlignment.Left;
    });
}
else
{
    BeginInvokeOnMainThread(delegate
    {
        OutgoingText.Text += StateObject.Response + "\n";
        OutgoingText.TextAlignment = UITextAlignment.Right;
    });
}

不幸的是Alignment.RightAlignment.Left移动了文本字段的全部内容。我想这个问题有很多解决方案,但我刚开始这么简单,越好。

1 个答案:

答案 0 :(得分:0)

改编自此处:Color different parts of a RichTextBox string

您可以扩展Richtextbox类并创建一个接受对齐参数的方法。它可能看起来像这样:

public static class RichTextBoxExtensions
{
    public static void AppendText(this RichTextBox box, string text, HorizontalAlignment align)
    {
        box.SelectionStart = box.TextLength;
        box.SelectionLength = 0;

        box.SelectionAlignment = align;
        box.AppendText(text);
    }
}

您可以这样使用:

richTextBox1.AppendText("lasdflaksjdflakjsdf\n", HorizontalAlignment.Left);
richTextBox1.AppendText("lasdflaksjdflakjsdf\n", HorizontalAlignment.Right);