C# 当要调整图像大小时,在图像上绘制的自定义线也应该在wpf/c中调整大小#

C# 当要调整图像大小时,在图像上绘制的自定义线也应该在wpf/c中调整大小#,c#,wpf,image,C#,Wpf,Image,我有一个wpf应用程序。有一个显示图像的图像控件。我在上面放了一块帆布,在上面画了一条线。双击可增大图像控件的大小。因此,其中的图像也会增加以适应图像控件,但画布上绘制的线的大小不会改变 当我更改图像形状(如直线或矩形)的大小时,在图像上绘制的图形也会按比例变化。您必须存储手动绘制的图形对象坐标。 调整图像大小时,必须从头开始创建图形对象,并根据缩放因子更改其坐标。 可能您可以使用矩阵对象来简化操作。确保画布具有与图像控件相同的初始大小。缩放图像控件时,只需使用缩放变换,并将相同的缩放变换应用于

我有一个wpf应用程序。有一个显示图像的图像控件。我在上面放了一块帆布,在上面画了一条线。双击可增大图像控件的大小。因此,其中的图像也会增加以适应图像控件,但画布上绘制的线的大小不会改变


当我更改图像形状(如直线或矩形)的大小时,在图像上绘制的图形也会按比例变化。

您必须存储手动绘制的图形对象坐标。
调整图像大小时,必须从头开始创建图形对象,并根据缩放因子更改其坐标。

可能您可以使用
矩阵
对象来简化操作。

确保画布具有与图像控件相同的初始大小。缩放图像控件时,只需使用缩放变换,并将相同的缩放变换应用于画布。

您尝试过什么吗?让我想想……谢谢马可的回复。我不知道如何在图像上确定形状的相对位置。我可以使用鼠标上下活动在画布上画线。再次感谢Marco。假设我在画一条线。我存储线的起点和终点。如何计算图像的缩放因子?@user370267:简单!!开始时存储图像控制宽度和高度;然后,获取调整大小事件,计算新缩放
Xfactor=new\u width/orig\u width
Yfactor=new\u height/orig\u height
。使用这些因素也可以缩放图形对象…感谢您的回复。我怎样才能用你说的代码实现呢?对不起,我没有完全理解。