/ / Jak wstawić obraz do RichTextBox WPF w środowisku wykonawczym pomiędzy tekstem, aby tekst był unoszący się wokół obrazu - wpf, richtextbox

Jak wstawić obraz do RichTextBox WPF w środowisku wykonawczym pomiędzy tekstem, aby tekst był unoszący się wokół obrazu - wpf, richtextbox

Próbuję wstawić obraz do WPFRichTextBox w środowisku wykonawczym pomiędzy tekstem, dzięki czemu tekst będzie się wyświetlał. Próbowałem użyć pływaka, ale efekt końcowy jest taki, że tylko jedna linia może zostać ustawiona obok obrazu, a reszta zawartości przesuwa się na dół.

To jest kod, który do tej pory wstawiłem do wstawienia obrazu:

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

Ale kiedy ustawiam kursor pomiędzy tekstem, poprzedni kod wstawia obraz do nowej linii, a reszta tekstu pojawia się po obrazie. Trochę tak:

"Lorem ipsum dolor sit amet, consecteturadipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in replhenderit in
[IMAGE COMES HERE]
[IMAGE COMES HERE]
[IMAGE COMES HERE]
[IMAGE COMES HERE]
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt w culpa qui officia deserunt mollit anim id est laborum. "

Jak mogę wstawić obrazek, aby tekst był unoszący się wokół obrazu (wiele linii poza tekstem po prawej i lewej stronie obrazu)?

Jeśli ktokolwiek ma pojęcie, jak to zrobić, chętnie bym to tutaj. Bardzo ci dziękuję.

Odpowiedzi:

0 dla odpowiedzi № 1

Jest to jedna z tych, które są łatwe, gdy wiesz jak. Po linii w kodzie, w której tworzysz Floater, dodaj to:

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

Możesz oczekiwać, że Floater ustawi jego szerokość w zależności od rozmiaru zawartości, ale ponieważ może to być tekst, który chcesz zawinąć, nie może tego zrobić. Musisz ustawić szerokość jawnie.