[英]WPF,How to insert image into RichTextBox
在此之前,我已經看到了一些方法可以做到這一點。 我將剪貼板圖片復制到 RichTextBox,但我想更改插入圖片的大小,這行不通
var bmpSource = Clipboard.GetImage() as InteropBitmap;
if (bmpSource != null)
{
RichTextBox.Paste();
}
事實上,我希望能夠像這樣插入圖像。
Paragraph para = new Paragraph();
BitmapImage bitmap = new BitmapImage(new Uri(@"D:\S.JPG"));
Image image = new Image();
image.Source = bitmap;
image.Width = 120;
image.Height = 90;
para.Inlines.Add(new InlineUIContainer(image, EditMessageRTB.Selection.Start));
EditMessageRTB.Document.Blocks.Add(para);
但是WPF的RichTextBox不支持這種方式。 在文本之后插入圖像。它看起來像這樣......
“文字,文字” [圖片]
我想插入這樣的圖像...“文本”,[圖像]“文本”
有誰知道該怎么做?
您可以通過在添加圖像的富文本框中添加堆棧面板來執行此操作。 然后,您可以根據需要更改圖像的樣式,例如:
<Window.Resources>
<BitmapImage x:Key="bitmap" UriSource="D:\S.JPG"/>
</Window.Resources>
<RichTextBox>
<FlowDocument>
<Paragraph>
<Run Text="RichTextBox"/>
<StackPanel>
<Image Source="{StaticResource ResourceKey=Screen}" Width="120" Height="80"/>
</StackPanel>
<Run Text="RichTextBox"/>
</Paragraph>
</FlowDocument>
</RichTextBox>
嘗試這個:
FlowDocument fd = new FlowDocument();
Paragraph p = new Paragraph();
System.Windows.Controls.Image image = new System.Windows.Controls.Image();
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.UriSource = GetUri("Images/ScanHead.png", typeof(PrintService));
bi.EndInit();
image.Stretch = Stretch.None;
image.Source = bi;
InlineUIContainer b = new InlineUIContainer(image);
b.BaselineAlignment = BaselineAlignment.Center;
p.Inlines.Add(b);
InlineUIContainer b2 = new InlineUIContainer(new TextBlock() { Text="Text\r\n2nd row"});
p.Inlines.Add(b2);
p.FontStyle = FontStyles.Normal;
p.FontFamily = new FontFamily("Arial");
p.FontSize = 18;
fd.Blocks.Add(p);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.