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)
{
//這裡沒有操作
}
}