WPF實現控制項拖動

2021-07-14 09:57:11 字數 670 閱讀 1919

實現控制項拖動的基本原理是對滑鼠位置的捕獲,同時根據滑鼠按鍵的按下、釋放確定控制項移動的幅度和時機。

簡單示例:

在grid中有乙個button,通過滑鼠事件改編button的margin屬性,從而改變button在grid中的相對位置。

"gd">

90 height=30 name="btn">button

為button控制項繫結三個事件:滑鼠按下、滑鼠移動、滑鼠釋放

public systemmap()

定義變數+滑鼠按下事件

point pos = new point();

void btn_mouseleftbuttondown(object sender, mousebuttoneventargs e)

滑鼠移動事件

void btn_mousemove(object sender, mouseeventargs e)

}

滑鼠釋放事件

void btn_mouseleftbuttonup(object sender, mousebuttoneventargs e)

實現控制項拖動

網上流傳的一種寫法是 利用 releasecapture sendmessage wm nclbuttondown,htcaption,0 但這種方法有很大的侷限。這裡提供的方法,更加直接。以按鈕為例,讓按鈕來捕獲 滑鼠按下和鬆開的訊息。然後關鍵就在於滑鼠移動的訊息的處理,如果讓按鈕自身來處理wm ...

WPF 去除頭部,實現拖動

有些窗體為了美觀,會把頭部的那部分去掉,換成其他的樣式,如下 那麼怎麼去掉呢,很簡單,只要設定乙個屬性即可 windowstyle none 還要可以拖動,這個時候觸發乙個事件mouseleftbuttondown即可 mouseleftbuttondown window mouseleftbutt...

WPF實現滑鼠拖動框選功能

本例項主要是使用wpf實現拖動滑鼠畫出矩形框同時框選控制項的功能,效果如下 1 首先canvas裡放一些矩形控制項來做示例,新增滑鼠按下 抬起 移動事件 2 新增全域性變數 private border currentboxselectedborder null 拖動展示的提示框 private b...