Ich arbeite an WPF, ich zeige RichText-Daten in RichTextBox für das WindowsFormHost genommen haben, innerhalb dessen ich WinForm RichTextBox nehme, um RichTextData anzuzeigen, die Bilder + Text haben.
Während jedoch angezeigt wird, dass RichTextData-Bilder nach oben und Text nach unten ausgerichtet sind, Siehe Bild unten, roter Kreis ist RichTextImage
Ich möchte Bilder und Text in der Mitte anzeigen. Wie unter Bild ist der rote Kreis RichTextImage, der in der Mitte mit Text kommt.
Mein XAML-Code lautet:
<Window x:Class="WPFRichTextBox.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
Title="MainWindow" Height="600" Width="800" Background="LightBlue" xmlns:my="clr-namespace:WPFRichTextBox">
<Grid Loaded="Grid_Loaded">
<WindowsFormsHost Margin="0,424,0,22">
<wf:RichTextBox Text="RichTextBox" x:Name="richTbTest1" BorderStyle="None" Enabled="True" ForeColor="Black" Width="550" Multiline="True" />
</WindowsFormsHost>
</Grid>
</Window>
Ich habe auch WPF RichTextBox verwendet, aber darin kann ich auch nicht Text + Bilder in der Mitte ausrichten
<RichTextBox VerticalContentAlignment="Stretch" Height="158" HorizontalAlignment="Left" Margin="10,247,0,0" Name="richTextBox1" VerticalAlignment="Top" Width="754" />
Antworten:
7 für die Antwort № 1Sie können verwenden BaselineAlignment
auf einen Run
zum zentrieren den text ausrichten. Hier ist ein Beispiel:
<RichTextBox>
<FlowDocument>
<Paragraph>
<Run Text="Some text" BaselineAlignment="Center"/>
<Image Height="100" Width="100" Source="ImagesDesert.jpg"/>
<Run Text="Some more text" BaselineAlignment="Center"/>
</Paragraph>
<Paragraph/>
<Paragraph>
<Run Text="Paragraph 2" BaselineAlignment="Center"/>
<Image Height="100" Width="100" Source="ImagesDesert.jpg"/>
<Run Text="More text" BaselineAlignment="Center"/>
</Paragraph>
</FlowDocument>
</RichTextBox>
BEARBEITEN:
Die Formatierung auf das gesamte anwenden RichTextBox
versuchen Sie, diese Methode nach dem aufzurufen RichTextBox
ist besiedelt:
public void CenterText()
{
var text = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
text.ApplyPropertyValue(Inline.BaselineAlignmentProperty, BaselineAlignment.Center);
}