none
图片在一直线上移动到某点触发事件问题 RRS feed

  • 问题

  •   private void barLimite_MouseMove(object sender, MouseEventArgs e)
      {
            double MoveY = (double)(e.GetPosition(barLimite).Y);   //barLimite:一条直线
             Canvas_bar_image.SetValue(Canvas.TopProperty, MoveY );   //Canvas_bar_image:被鼠标拖动的图片

             if (MoveY == barLimite.Height / 2)   // 移动到二分之一处
                     HtmlPage.Window.Alert("ddd");
     }

      一图片(只是举例,可以是其他对象)用鼠标沿一直线上拖动(类似slider控件),当图片被拖动到直线二分之一处,触发Alert()。
    问题是:
    拖动速度的话,拖到二分之一处会正常执行 HtmlPage.Window.Alert("ddd");
    拖动速度的话,if里面就不执行了。
    难道是拖动速度快,程序就来不及计算?

     


    打火机

    2009年2月1日 3:35

答案

  • 如果要判断拖动到某点,我觉得还是要给定这个点周围的一个范围,比如以这点为中心上下5像素,精确到1像素在MouseMove上不一定能触发到,因为,MouseMove并不是移动过的每个点都会记录,实际上还是有个类似定时器的东西每毫秒在取值.您可以把MouseMove的点跟时间都记录一下看看

    • 已标记为答案 打火机 2009年2月5日 7:41
    2009年2月4日 3:34
    版主