Exemple #1
0
        private void ReleaseMouse(Point p)
        {
            isdrag_Mouse = false;
            timer_Mouse.Stop();
            double nowoffset = p.Y;

            if (counttime_Mouse == 0)
            {
                if (EndOperation != null)
                {
                    EndOperation();
                }
                return;
            }
            if (Math.Abs((nowoffset - startOffset_Mouse) / counttime_Mouse) >= BoundSpeed)
            {
                if ((nowoffset - startOffset_Mouse) / counttime_Mouse > 0)
                {
                    double offset = GetSpeedRateOffset(Math.Abs((nowoffset - startOffset_Mouse) / counttime_Mouse));
                    InertiaAnimation_Mouse.By = offset;
                    STK_MainStk_Mouse.BeginAnimation(Canvas.TopProperty, InertiaAnimation_Mouse);
                }
                if ((nowoffset - startOffset_Mouse) / counttime_Mouse < 0)
                {
                    double offset = -GetSpeedRateOffset(Math.Abs((nowoffset - startOffset_Mouse) / counttime_Mouse));
                    InertiaAnimation_Mouse.By = offset;
                    STK_MainStk_Mouse.BeginAnimation(Canvas.TopProperty, InertiaAnimation_Mouse);
                }
            }
            if (counttime_Mouse > 0 && Math.Abs((nowoffset - startOffset_Mouse) / counttime_Mouse) < BoundSpeed)
            {
                EnsureBack();
            }
            counttime_Mouse = 0;
        }
Exemple #2
0
 public void ReSetState()
 {
     if (STK_MainStk_Mouse != null)
     {
         STK_MainStk_Mouse.BeginAnimation(Canvas.TopProperty, null);
         Canvas.SetTop(STK_MainStk_Mouse, 0);
     }
 }
        public void ResetBack(bool withPosition)
        {
            double top = Canvas.GetTop(STK_MainStk_Mouse);

            STK_MainStk_Mouse.BeginAnimation(Canvas.TopProperty, null);
            if (withPosition)
            {
                Canvas.SetTop(STK_MainStk_Mouse, top);
            }
        }
Exemple #4
0
 private void EnsureBack()
 {
     if (MaxTop > 0)
     {
         if (Canvas.GetTop(STK_MainStk_Mouse) < -MaxTop)
         {
             InertiaAnimationBack_Mouse.To = -MaxTop;
             STK_MainStk_Mouse.BeginAnimation(Canvas.TopProperty, InertiaAnimationBack_Mouse);
         }
         else if (Canvas.GetTop(STK_MainStk_Mouse) > 0)
         {
             InertiaAnimationBack_Mouse.To = 0;
             STK_MainStk_Mouse.BeginAnimation(Canvas.TopProperty, InertiaAnimationBack_Mouse);
         }
         else
         {
             if (EndOperation != null)
             {
                 EndOperation();
             }
         }
     }
     else
     {
         if (Canvas.GetTop(STK_MainStk_Mouse) != 0)
         {
             InertiaAnimationBack_Mouse.To = 0;
             STK_MainStk_Mouse.BeginAnimation(Canvas.TopProperty, InertiaAnimationBack_Mouse);
         }
         else
         {
             if (EndOperation != null)
             {
                 EndOperation();
             }
         }
     }
 }