У меня есть эта проблема.Я добавляю изображения (улыбки) в элемент управления richTextBox из Extended WPF Toolkit.
В функции преобразования простого текста в текст с изображениями я устанавливаю высоту строки абзаца, а этот абзац я добавляю в блоки richTextBox.Вот оно:
private void RpTextToTextWithEmoticons(string msg)
{
//set line height
var para = new Paragraph {LineHeight = 40};
var r = new Run(msg);
para.Inlines.Add(r);
string emoticonText = GetEmoticonText(r.Text);
//if paragraph does not contains smile only add plain text to richtextbox rtb2
if (string.IsNullOrEmpty(emoticonText))
{
RtbConversation.Document.Blocks.Add(para);
}
else
{
while (!string.IsNullOrEmpty(emoticonText))
{
TextPointer tp = r.ContentStart;
// keep moving the cursor until we find the emoticon text
while (!tp.GetTextInRun(LogicalDirection.Forward).StartsWith(emoticonText))
tp = tp.GetNextInsertionPosition(LogicalDirection.Forward);
// select all of the emoticon text
var tr = new TextRange(tp, tp.GetPositionAtOffset(emoticonText.Length)) { Text = string.Empty };
//relative path to image smile file
string path = _mappings[emoticonText];
var image = new Image
{
Source = new BitmapImage(new Uri(path, UriKind.RelativeOrAbsolute)),
Width = 30,
Height = 30,
};
//insert smile
new InlineUIContainer(image, tp);
if (para != null)
{
var endRun = para.Inlines.LastInline as Run;
if (endRun == null)
{
break;
}
else
{
emoticonText = GetEmoticonText(endRun.Text);
}
}
}
RtbConversation.Document.Blocks.Add(para);
}
}
Но если я добавлю новые абзацы в блоки, все абзацы будут иметь различную высоту / интервал между строками.Мне нужна постоянная высота строки / расстояние между отдельными абзацами, что-то вроде чата в скайпе.
Моя проблема, которую вы можете увидеть на изображении:
Где может быть проблема, я беспомощен.Спасибо за любое продвижение.