Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 如何在RichTextBox中设置内联图像垂直居中_Wpf_Richtextbox_Windowsformshost - Fatal编程技术网

Wpf 如何在RichTextBox中设置内联图像垂直居中

Wpf 如何在RichTextBox中设置内联图像垂直居中,wpf,richtextbox,windowsformshost,Wpf,Richtextbox,Windowsformshost,我正在处理WPF,我在RichTextBox中显示RichText数据,其中包含WindowsFormHost,我在WinForm RichTextBox中显示RichTextData,其中包含图像+文本 但当显示RichTextData图像与顶部对齐,文本与底部对齐时, 如下图所示,红色圆圈为RichTextImage 我想在中间显示图像和文本。与下图一样,红色圆圈是RichTextImage,它与文本一起位于中间 我的XAML代码是: <Window x:Class="WPFRic

我正在处理WPF,我在RichTextBox中显示RichText数据,其中包含WindowsFormHost,我在WinForm RichTextBox中显示RichTextData,其中包含图像+文本

但当显示RichTextData图像与顶部对齐,文本与底部对齐时, 如下图所示,红色圆圈为RichTextImage

我想在中间显示图像和文本。与下图一样,红色圆圈是RichTextImage,它与文本一起位于中间

我的XAML代码是:

<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>

我也使用了WPF RichTextBox,但在这方面,我也无法将文本+图像对齐到中间

     <RichTextBox VerticalContentAlignment="Stretch" Height="158" HorizontalAlignment="Left" Margin="10,247,0,0" Name="richTextBox1" VerticalAlignment="Top" Width="754" />

您可以在运行
时使用
BaselineAlignment
将文本居中对齐。以下是一个例子:

<RichTextBox>
    <FlowDocument>
        <Paragraph>
            <Run Text="Some text" BaselineAlignment="Center"/>
            <Image Height="100" Width="100" Source="Images\Desert.jpg"/>
            <Run Text="Some more text" BaselineAlignment="Center"/>
        </Paragraph>
        <Paragraph/>
        <Paragraph>
            <Run Text="Paragraph 2" BaselineAlignment="Center"/>
            <Image Height="100" Width="100" Source="Images\Desert.jpg"/>
            <Run Text="More text" BaselineAlignment="Center"/>
        </Paragraph>
    </FlowDocument>
</RichTextBox>

谢谢,我试过了,但我没有手动插入图像和文本,我的数据库中有文本和图像的RTF数据,我必须从那里绑定这个RichTextBox谢谢,文本现在进入中心,但文本格式已经改变,CentreText正在WPF RichTextBox上工作,我使用WinForm RichTextBox通过WPF的WindowsFormHost控件更好地格式化文本和图像
    public void CenterText()
    {
        var text = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
        text.ApplyPropertyValue(Inline.BaselineAlignmentProperty, BaselineAlignment.Center);
    }