2014-04-22 2 views
0

Я динамически анализирую данные и добавляю текст как Run, Hyperlinks и images как InlineUIContainer в Windows Phone 8.0 RichTextBox. Как-то я не могу справиться с тем, что изображения вертикально выровнены по центру с текстом.WP RichTextBox Вертикальное выравнивание

Изображения добавляются следующим образом:

 Paragraph paragraph = new Paragraph(); 
     richTextBox.Blocks.Add(paragraph); 

     var img = new Image 
     { 
      Stretch = Stretch.Uniform, 
      Source = imageSource, 
      VerticalAlignment = VerticalAlignment.Center, 
      Height = inlineImageSize, 
     }; 

     paragraph.Inlines.Add(new InlineUIContainer {Child = img}); 

И текст вроде:

 Paragraph paragraph = new Paragraph(); 
     richTextBox.Blocks.Add(paragraph); 
     paragraph.Inlines.Add(new Run { Text = text }); 

Я попытался установить несколько значений для выравнивания на RichTextBox, а также, но текст никогда не центрируется с изображениями. Текст всегда выровнен по нижнему краю.

Любой шанс получить встроенные изображения по вертикали с помощью встроенного текста в WP RichTextBox?

+0

Это может работать хорошо, но это довольно раздутое все пользовательские элементы управления окружающими http://stackoverflow.com/questions/5242508/silverlight-how-to-align -text-in-inlineuicontainer-content-with-outer-text-in-r –

ответ

1

Я думаю, что вы ищете BaselineAlignment Property. Пробуйте следующее:

Paragraph paragraph = new Paragraph(); 
    richTextBox.Blocks.Add(paragraph); 

    var img = new Image 
    { 
     Stretch = Stretch.Uniform, 
     Source = imageSource, 
     BaselineAlignment = BaselineAlignment.Center, 
     Height = inlineImageSize, 
    }; 

    paragraph.Inlines.Add(new InlineUIContainer {Child = img}); 
+0

Это для Windows Phone, у которого нет BaselineAlignment AFAIK, или я пропустил include? –

+1

Извините, я не видел тег. Похоже, что Windows Phone 8 и Windows Phone 8.1 поддерживают BaselineAlignment, но Windows Phone 7 не отмечен в [Библиотеке MSDN] (http://msdn.microsoft.com/en-us/library/system.windows.documents .inline.baselinealignment (v = vs.110) .aspx) –

+0

Я пошел и просмотрел все свойства класса изображения в [Библиотеке разработчиков Windows Phone] (http://msdn.microsoft.com/en-us/ библиотека/windowsphone/develop/windows.ui.xaml.controls.image.aspx # свойства), и я не мог найти ничего похожего на BaselineAlignment или равноценный. Короче говоря ... У меня нет ответа для вас, если вы работаете с Windows Phone. Сожалею. –

0

Извините за поздний ответ. Попробуйте установить маржу для встроенных изображений:

Paragraph paragraph = new Paragraph(); 
richTextBox.Blocks.Add(paragraph); 

var img = new Image 
{ 
    Stretch = Stretch.Uniform, 
    Source = imageSource, 
    Height = inlineImageSize, 
    Margin = new Thickness(0,0,0,-5); 
}; 

paragraph.Inlines.Add(new InlineUIContainer {Child = img}); 
Смежные вопросы