C#将头像添加到RichTextBox

时间:2017-08-01 13:33:27

标签: c# winforms richtextbox rtf richtext

我在这里要完成的是,能够添加这样的文本消息:

enter image description here

能够制作一个聊天框,我可以说1000 msgs,就像这样..所以我创建了一个自定义RichTextBox如下:

public class CustomRichTextBox : RichTextBox
    {
        public CustomRichTextBox()
        {

        }
        public static byte[] ImageToByte(Image img)
        {
            ImageConverter converter = new ImageConverter();
            return (byte[])converter.ConvertTo(img, typeof(byte[]));
        }

        public static string ByteArrayToString(byte[] ba)
        {
            StringBuilder hex = new StringBuilder(ba.Length * 2);
            foreach (byte b in ba)
                hex.AppendFormat("{0:x2}", b);
            return hex.ToString();
        }

        public void AddPic(Image img)
        {
            string imgStr = ByteArrayToString(ImageToByte(img));
            string mpic = @"{\pict\pngblip\picw" +
                          img.Width.ToString() + @"\pich" + img.Height.ToString() +
                          @"\picwgoal" + img.Width.ToString() + @"\pichgoal" + img.Height.ToString() +
                          @"\hex " + imgStr + "}";

            Rtf +=  mpic + " Username \r\n Said!...";
        }
    }

RichTextBox没有真正显示,我在这里缺少什么!?我只是希望它显示头像和旁边的一个段落,稍后我会更改font/color etc

1 个答案:

答案 0 :(得分:0)

我认为您的头像图片以及用户名的文本框应该是与评论/消息内容分开的控件。这就是它应该如何做的:

<StackPanel orientation="horizontal">
    <Image alt="avatar" />
    <StackPanel orientation="vertical">
        <TextBox>Username</TextBox>
        <RichTextBox>Message or Comment</RichTextBox>
    </StackPanel>
</StackPanel>

转换为您选择的布局。