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; }
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); } }
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(); } } } }