在MouseDown事件上,更改图像的大小

时间:2012-11-25 11:08:38

标签: c# wpf

我有一个图像,我需要改变运行时的大小,我想要做的是,当用户按下鼠标左键并且光标位于图像的边框上时,然后当他移动时鼠标光标图像大小根据光标的位置而变化。

这是我到目前为止所做的:

   Point p = e.GetPosition(this);
   Image img = (Image)e.Source;
   var pos =Mouse.GetPosition(this);


   if ((p.X == 89 && (p.Y > 204 && p.Y < 252)) || (p.Y == 245 && (p.X > 89 && p.X < 138)) || (p.Y == 213 && (p.X > 89 && p.X < 138)) || p.X == 138 && p.Y > 204 && p.Y < 252)
   {
       img.Width = p.X;
       img.Height = p.Y;
   }

问题是图像不会根据光标而改变。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

问题在于代码的逻辑: 图像仅在非常具体的坐标上发生变化。我需要花费很长时间才能在x == 138时完全点击图片,而即便如此我花了更多时间找到与204 < y < 252匹配的像素。

当我 找到正确的位置时,图片会根据要求自行调整大小。

我建议您在if语句中重新检查逻辑,至少 - 允许更大范围的坐标(例如x <= 40 && x >= 70而不仅仅是x == 83