Как я могу добавить изображение в свой Run для RichTextBlock? - PullRequest
1 голос
/ 14 октября 2008

Я написал небольшое приложение WPF, в котором мне нравится добавлять текст в RichTextBox, чтобы новейшие материалы были сверху. Я написал это, и это работает:

    /// <summary>
    /// Prepends the text to the rich textbox
    /// </summary>
    /// <param name="textoutput">The text representing the character information.</param>
    private void PrependSimpleText(string textoutput)
    {
        Run run = new Run(textoutput);
        Paragraph paragraph = new Paragraph(run);

        if (this.RichTextBoxOutput.Document.Blocks.Count == 0)
        {
            this.RichTextBoxOutput.Document.Blocks.Add(paragraph);
        }
        else
        {
            this.RichTextBoxOutput.Document.Blocks.InsertBefore(this.RichTextBoxOutput.Document.Blocks.FirstBlock, paragraph);
        }
    }

Теперь я хотел бы сделать новую версию этой функции, которая также может добавлять небольшие изображения. Я в растерянности, хотя - возможно ли добавлять изображения?

Ответы [ 2 ]

8 голосов
/ 14 октября 2008

Попробуйте следующее:

BitmapImage bi = new BitmapImage(new Uri(@"C:\SimpleImage.jpg"));
Image image = new Image();
image.Source = bi;
InlineUIContainer container = new InlineUIContainer(image);            
Paragraph paragraph = new Paragraph(container); 
RichTextBoxOutput.Document.Blocks.Add(paragraph);

InlineUIContainer - это "магия" здесь ... Вы можете добавить любой элемент UIElement. Если вы хотите добавить несколько элементов, используйте панель для обертывания элементов (например, StackPanel и т. Д.)

1 голос
/ 14 октября 2008

RickTextbox.Document - это FlowDocument, в который можно добавить практически все, что реализует ContentElement. Это включает в себя изображения, метки, StackPanel и все другие ваши любимые WPF.

Проверьте Обзор FlowDocument для получения более подробной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...