如何在运行时将图像插入到 WPF RichTextBox 的文本之间,以便文本漂浮在图像周围

2024-04-12

我正在尝试在运行时将图像插入到 WPF RichTextBox 中的文本之间,以便文本浮动。我尝试使用浮动框,但最终结果是图像旁边只能设置一行,其余内容会移到底部。

这是我迄今为止用于插入图像的代码:

    private Image SelectImage()
    {
        CommonDialog dialog = new CommonDialog();
        dialog.InitialDirectory =  System.Environment.SpecialFolder.MyDocuments.ToString();
        dialog.Filter.Add( new FilterEntry( Properties.Resources.StrImageFormats, "*.jpg;*.jpeg;*.gif;*.png" ) );
        dialog.Title = Properties.Resources.StrSelectImage;

        if ( dialog.ShowOpen() )
        {
            string filePath = dialog.FileName;
            BitmapImage bitmap = new BitmapImage( new Uri( filePath, UriKind.Absolute ) );
            Image image = new Image();
            image.Source = bitmap;
            image.Width = bitmap.Width;
            image.Height = bitmap.Height;
            return image;
        }
        return null;
    }

    private void ButtonInsertImage_Click( object sender, RoutedEventArgs e )
    {
        Image image = SelectImage();
        if ( image != null )
        {
            TextPointer tp = RTB.CaretPosition.GetInsertionPosition( LogicalDirection.Forward );
            Floater floater = new Floater( new BlockUIContainer( image ), tp );
        }
    }

但是,当我将光标放在文本之间时,前面的代码会将图像插入新行,而文本的其余部分则位于图像之后。有点像这样:

“Lorem ipsum dolor sat amet,consectetur adipisicing elit,sed do eiusmod tempor incididunt ut laboure et dolore magna aliqua。Ut enim ad minim veniam,quis nostrud exeritation ullamco labouris nisi ut aliquip ex ea commodo consequat。Duis aute irure dolor in reprehenderit
[图像在这里]
[图像在这里]
[图像在这里]
[图像在这里]
voluptate velit esse cillum dolore eu fugiat nulla pariatur。例外的是,如果你没有做好准备,就必须承担责任,否则你的生命将被毁掉。”

如何插入图像以使文本漂浮在图像周围(图像右侧和左侧的文本多行)?

如果有人对如何做到这一点有任何想法,我很乐意在这里。非常感谢你。


当你知道如何做时,这是很容易的事情之一。在代码中创建 Floater 的行之后,添加以下内容:

floater.HorizontalAlignment = HorizontalAlignment.Center;
floater.Width = bitmap.Width;

您希望 Floater 根据内容的大小设置其宽度,但由于它可能是您想要换行的文本,因此它不能。您必须明确设置宽度。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在运行时将图像插入到 WPF RichTextBox 的文本之间,以便文本漂浮在图像周围 的相关文章

随机推荐