我想在WPF控件中显示图像的特定区域。 让我们说原始图像尺寸为600x400,我试图在该图像内显示一个矩形,位于X = 420,Y = 330,宽度= 60,高度= 40。
所以我尝试使用ScaleTransform并将比例因子计算为10,将RenderTransformOrigin计算为0.75,0.85。
但是当我查看控件时,我没有得到我期望的图像。 (只有红色矩形)。
代码是:
<Grid>
<Button Width="600" Height="400">
<Button.Template>
<ControlTemplate>
<Grid ClipToBounds="True">
<Image Source="c:\temp\sample.bmp" Stretch="Uniform" RenderTransformOrigin="0.75, 0.85">
<Image.RenderTransform>
<ScaleTransform ScaleX="10" ScaleY="10" />
</Image.RenderTransform>
</Image>
</Grid>
</ControlTemplate>
</Button.Template>
</Button>
</Grid>
结果如下:
答案 0 :(得分:2)
您可以使用CroppedBitmap
:
<Image>
<Image.Source>
<CroppedBitmap Source="c:\temp\sample.bmp" SourceRect="420,330,60,40"/>
</Image.Source>
</Image>
或者您使用ImageBrush
与适当的Viewbox
:
<Grid>
<Grid.Background>
<ImageBrush ImageSource="c:\temp\sample.bmp"
ViewboxUnits="Absolute" Viewbox="420,330,60,40"/>
</Grid.Background>
</Grid>