在RichTextBox WPF中添加图像
本文关键字:添加 图像 WPF RichTextBox | 更新日期: 2023-09-27 18:05:31
我试图在基于ListBox项目的选择的RichTextBox
内添加静态图像。我能够实现加载图像的功能,但图像不占用RichTextBox
的整个大小。我查看了MSDN文档中我可以设置的任何属性,但找不到任何适合我需要的。
我已经发布了一个示例代码片段来添加一个图像到RichTextBox
。
<Window x:Class="ImageDepth.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<RichTextBox HorizontalAlignment="Center" Height="100" VerticalAlignment="Center" Width="100" BorderBrush="Gray">
<FlowDocument>
<BlockUIContainer>
<Image Source="C:'Temp'Penguins.jpg"/>
</BlockUIContainer>
</FlowDocument>
</RichTextBox>
</Grid>
我在这里错过了什么,或者有一个更简单的方法来实现这一点?
编辑:我尝试将图像的高度和宽度设置为RichTextBox
的高度和宽度,但它覆盖了RichTextBox
的80%左右。此外,我必须删除图像的拉伸属性,因为它会稍微扭曲图像,即使设置该属性使图像覆盖大约90%的区域。
您必须将Image的 Height
和 Width
绑定到RichTextBox的 ActualHeight
和 ActualWidth
。
<Image Source="C:'Temp'Penguins.jpg"
Width="{Binding ActualWidth, RelativeSource={RelativeSource
Mode=FindAncestor, AncestorType=RichTextBox}}"
Height="{Binding ActualHeight, RelativeSource={RelativeSource
Mode=FindAncestor, AncestorType=RichTextBox}}"/>
似乎有内部填充的RichTextBox。你可以将其设置为负值以移除填充。
<RichTexBox Padding="-5,-2,-5,-2"> // It reads Left, Top, Right, Bottom
....
</RichTexBox>
把-5,-2,-5,-2改成你想要的值
试试这个:
<Window x:Class="ImageDepth.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<RichTextBox HorizontalAlignment="Center" Height="100" VerticalAlignment="Center" Width="100" BorderBrush="Gray">
<FlowDocument>
<BlockUIContainer>
<Image Height="100" Width="100" Source="C:'Temp'Penguins.jpg" Stretch="Fill"/>
</BlockUIContainer>
</FlowDocument>
</RichTextBox>
</Grid>
这将告诉你的图像填充整个RichTextBox
。