2012-02-04 47 views
4

我试图插入图像到WPF RichTextBox在运行时在文本之间,使文本浮动。我尝试使用浮动,但最终的结果是只有一行可以设置图像旁边,其余的内容转移到底部。如何插入图像到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存有悲坐阿梅德,consectetur adipisicing ELIT,sed的根本eiusmod tempor incididunt UT labore等dolore麦格纳aliqua UT enim广告微量veniam,QUIS nostrud实习ullamco laboris暂准UT aliquip前。 EA commodo consequat。DUIS奥特irure悲在reprehenderit在
[IMAGE来这里]
[IMAGE来这里]
[IMAGE来这里]
[IMAGE COMES HERE]
voluptate velit埃塞cillum dolore EU fugiat法无pariatur 。Excepteur sint occaecat cupidatat non proident,sunt in culpa qui off icia deserunt mollit anim id est laborum。“

如何插入图像,以便文本在图像周围浮动(多行关闭图像的右侧和左侧的文本)?

如果任何人有任何关于如何做到这一点的想法,我会喜欢在这里。非常感谢你。

+0

哪种解决方案适合您? – 2014-12-15 14:19:38

回答

0

这是当你知道如何很容易的其中之一。在你的代码中创建浮动行后,补充一点:

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

你所期望的浮子来设置它取决于内容的大小宽度,但由于它可能是文本要换行,它不能。你必须明确地设置宽度。