2014-04-22 4 views
0

Je suis en train d'analyser dynamiquement des données et d'ajouter du texte en tant qu'Exécution, Hyperliens et images en tant que InlineUIContainer dans un Windows Phone 8.0 RichTextBox. D'une manière ou d'une autre je ne peux pas gérer que les images s'alignent verticalement centrées avec le texte.WP Alignement vertical RichTextBox

Les images sont ajoutées comme ceci:

 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}); 

Et texte comme ça:

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

J'ai essayé de définir quelques valeurs pour l'alignement sur le RichTextBox ainsi, mais le texte est jamais centré avec les images. Le texte est toujours aligné en bas.

Est-il possible de centrer verticalement les images en ligne avec le texte incorporé dans le WP RichTextBox?

+0

Cela pourrait fonctionner aussi bien, mais il est tout à fait pléthorique avec tous les contrôles personnalisés entourant http://stackoverflow.com/questions/5242508/silverlight-how-to-align -text-in-inlineuicontainer-content-with-text-text-in-r –

Répondre

1

Je pense que ce que vous recherchez est la propriété BaselineAlignment. les opérations suivantes:

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

Ceci est pour Windows Phone qui ne possède pas d'AFFICH ou d'inclusion de BaselineAlignment? –

+1

Désolé, je n'ai pas vu le tag. Il semble que Windows Phone 8 et Windows Phone 8.1 prennent en charge BaselineAlignment, mais Windows Phone 7 ne figure pas sur la [MSDN Library] (http://msdn.microsoft.com/fr-fr/library/system.windows.documents .inline.baselinealignment (v = vs.110) .aspx) –

+0

Je suis allé voir toutes les propriétés de la classe image dans la [Bibliothèque Windows Phone Developer] (http://msdn.microsoft.com/fr-fr/ library/windowsphone/develop/windows.ui.xaml.controls.image.aspx # properties) et je n'ai pas pu trouver quelque chose comme un BaselineAlignment ou un équivilent. Je suppose qu'en résumé ... je n'ai pas de réponse pour vous si vous travaillez avec Windows Phone. Pardon. –

0

Désolé pour la réponse tardive. Essayez de définir la marge pour vos images en ligne:

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});