我正在尝试根据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%。此外,我不得不删除图像的Stretch属性,因为它会略微扭曲图像,即使设置属性使图像覆盖了大约90%的区域。
答案 0 :(得分:4)
您必须将 Height
和 Width
的图片绑定到 ActualHeight
和 ActualWidth
的RichTextBox。
<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 更改为适合您的所需值。
答案 1 :(得分:1)
试试这个:
<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
。