C# WPF-如何缩放图像中的特定区域
我想在WPF控件中显示图像的特定区域。 假设原始图像的尺寸是600x400,我试图在图像中显示一个矩形,位于X=420,Y=330,宽度=60,高度=40 因此,我尝试使用ScaleTransform并将比例因子计算为10,将renderTransferorMorigin计算为0.75,0.85 但是当我查看控件时,我没有得到我期望的图像。(仅红色矩形) 代码如下:C# WPF-如何缩放图像中的特定区域,c#,wpf,C#,Wpf,我想在WPF控件中显示图像的特定区域。 假设原始图像的尺寸是600x400,我试图在图像中显示一个矩形,位于X=420,Y=330,宽度=60,高度=40 因此,我尝试使用ScaleTransform并将比例因子计算为10,将renderTransferorMorigin计算为0.75,0.85 但是当我查看控件时,我没有得到我期望的图像。(仅红色矩形) 代码如下: <Grid> <Button Width="600" Height="400">
<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>
结果是:
您可以使用
裁剪位图
:
<Image>
<Image.Source>
<CroppedBitmap Source="c:\temp\sample.bmp" SourceRect="420,330,60,40"/>
</Image.Source>
</Image>
您是否需要更改动态焦点区域(大小、位置)?@dymanoid是的,我需要在运行时更改它(图像和焦点区域)
<Grid>
<Grid.Background>
<ImageBrush ImageSource="c:\temp\sample.bmp"
ViewboxUnits="Absolute" Viewbox="420,330,60,40"/>
</Grid.Background>
</Grid>