1. 程式人生 > >C# WPF實現滑鼠拖動的程式碼片

C# WPF實現滑鼠拖動的程式碼片

C# WPF實現滑鼠拖動的程式碼片

///可表示實時拖動
void xxx_PreviewMouseLeftButtonUp(System.Object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    IsMouseLeftBtnDown = false;
    IsMouseLeftBtnUp = true;
}

/// <summary>
/// 是否按下滑鼠左鍵
/// </summary>
private bool IsMouseLeftBtnDown = false;
/// <summary>
/// 是否鬆開滑鼠左鍵 /// </summary> private bool IsMouseLeftBtnUp = true; /// <summary> /// 滑鼠拖動期間 x軸偏移量 /// </summary> private double xOffset = 0; /// <summary> /// 滑鼠按下點在X軸的位置 /// </summary> private double xDown = 0; /// <summary> /// 滑鼠鬆開點在X軸的位置 /// </summary> private double xUp = 0; void xxx_PreviewMouseLeftButtonDown
(System.Object sender, System.Windows.Input.MouseButtonEventArgs e) { IsMouseLeftBtnDown = true; IsMouseLeftBtnUp = false; xDown = e.GetPosition(this).X; } void xxx_PreviewMouseMove(System.Object sender, System.Windows.Input.MouseEventArgs e) { if (IsMouseLeftBtnDown && !IsMouseLeftBtnUp)
{ xUp = e.GetPosition(this).X; xOffset = xDown - xUp; xDown = xMove;//改變當前滑鼠按下位置,這樣曲線就可以隨著滑鼠移動方向而準確移動 txTagName8.Text = xOffset.ToString(); } } ///滑鼠彈起時發生操作,這樣就不是實時的了 void CurvePnl_PreviewMouseLeftButtonUp(System.Object sender, System.Windows.Input.MouseButtonEventArgs e) { IsMouseLeftBtnDown = false; IsMouseLeftBtnUp = true; xUp = e.GetPosition(this).X; xOffset = xDown - xUp; xDown = xMove;//改變當前滑鼠按下位置,這樣曲線就可以隨著滑鼠移動方向而準確移動 txTagName8.Text = xOffset.ToString(); } /// <summary> /// 是否按下滑鼠左鍵 /// </summary> private bool IsMouseLeftBtnDown = false; /// <summary> /// 是否鬆開滑鼠左鍵 /// </summary> private bool IsMouseLeftBtnUp = true; /// <summary> /// 滑鼠拖動期間 x軸偏移量 /// </summary> private double xOffset = 0; /// <summary> /// 滑鼠按下點在X軸的位置 /// </summary> private double xDown = 0; /// <summary> /// 滑鼠鬆開點在X軸的位置 /// </summary> private double xUp = 0; void CurvePnl_PreviewMouseLeftButtonDown(System.Object sender, System.Windows.Input.MouseButtonEventArgs e) { IsMouseLeftBtnDown = true; IsMouseLeftBtnUp = false; xDown = e.GetPosition(this).X; } void CurvePnl_PreviewMouseMove(System.Object sender, System.Windows.Input.MouseEventArgs e) { if (IsMouseLeftBtnDown && !IsMouseLeftBtnUp) { //這裡沒有操作 } }

以上就是滑鼠拖動的兩種重新整理策略。