WPF實現控制元件拖動
實現控制元件拖動的基本原理是對滑鼠位置的捕獲,同時根據滑鼠按鍵的按下、釋放確定控制元件移動的幅度和時機。
簡單示例:
在Grid中有一個Button,通過滑鼠事件改編Button的Margin屬性,從而改變Button在Grid中的相對位置。
<Grid Name="gd">
<Button Width=90 Height=30 Name="btn">button</Button>
</Grid>
為Button控制元件繫結三個事件:滑鼠按下、滑鼠移動、滑鼠釋放
public SystemMap() { InitializeComponent(); btn.MouseLeftButtonDown += btn_MouseLeftButtonDown; btn.MouseMove += btn_MouseMove; btn.MouseLeftButtonUp += btn_MouseLeftButtonUp; }
定義變數+滑鼠按下事件
Point pos = new Point();
void btn_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
Button tmp = (Button)sender;
pos = e.GetPosition(null);
tmp.CaptureMouse();
tmp.Cursor = Cursors.Hand;
}
滑鼠移動事件
void btn_MouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton==MouseButtonState.Pressed)
{
Button tmp = (Button)sender;
double dx = e.GetPosition(null).X - pos.X + tmp.Margin.Left;
double dy = e.GetPosition(null).Y - pos.Y + tmp.Margin.Top;
tmp.Margin = new Thickness(dx, dy, 0, 0);
pos = e.GetPosition(null);
}
}
滑鼠釋放事件
void btn_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
Button tmp = (Button)sender;
tmp.ReleaseMouseCapture();
}
相關推薦
WPF實現控制元件拖動
實現控制元件拖動的基本原理是對滑鼠位置的捕獲,同時根據滑鼠按鍵的按下、釋放確定控制元件移動的幅度和時機。 簡單示例: 在Grid中有一個Button,通過滑鼠事件改編Button的Margin屬性,
JS 實現控制元件拖拽/拖動
下面是實現控制元件拖拽的完整程式碼。 (function ($) { var move = false; //標記控制元件是否處於被拖動狀態 var dragOffsetX = 0; //控制元件左邊界和滑鼠X軸的差
Android控制元件拖動實現
1.今天突然想到做個實現個控制元件拖動效果,就來試試,一查原來還是很簡單的 2.原理就是實現OnTouchLinstener,然後觸控式螢幕幕時改變控制元件的位置,當然了會有人問OnTouch與OnClick有什麼區別,百度搜一下就知道了,懶得說。。 3.廢
控制元件拖動後,某些事件引起的佈局重置或位置還原問題
自定義了一個imageview控制元件,可以隨意拖動和縮放。 遇到了一個棘手的問題,就是每當拖動完控制元件以後,執行某些操作的時候(比如說觸發虛擬鍵盤),該控制元件的位置就會還原到初始位置。 經過嘗試,問題已經解決, 解決方法是:捕捉ACTION_UP動作,當發現這個動作
安卓控制元件拖動
/** 此文主要有兩大要點 1.控制元件的拖動 2.控制元件同時實現點選事件與拖動事件時的衝突處理 要點地方都有註釋 */ public class extents Activity{ /** Called when the activity is first create
WPF實現控件拖動
實現 原創 mmap markdown and highlight -o event -s 原文:WPF實現控件拖動
C++ Builder 實現控制元件拖放操作
5.1 實現控制元件拖放操作 拖放是使用者操縱物件的常用的方法。使用者可拖動整個控制元件,或將某一個控制元件(如列表框或樹狀檢視)中的項拖動到另一個控制元件中。 · 開始拖動操作。 ·
在WPF中的Canvas上實現控制元件的拖動、縮放
如題,專案中需要實現使用滑鼠拖動、縮放一個矩形框,WPF中沒有現成的,那就自己造一個輪子:) 造輪子前先看看Windows自帶的畫圖工具中是怎樣做的,如下圖: 在被拖動的矩形框四周有9個小框,可以從不同方向拖動來放大縮小矩形框,另外需要注意的是,還有一
C#如何實現控制元件移動拖動
1 //在picturebox滑鼠移動 2 private void picBox_MouseMove(object sender, MouseEventArgs e) 3 { 4 if (MoveFlag) 5 { 6 picBox.Left += Convert.To
WPF自定義控制元件拖拽到介面報錯-未將物件設定到引用的例項
WPF自定義控制元件拖拽到介面報錯-未將物件設定到引用的例項 若給自定義控制元件註冊了許多屬性,那麼在拖拽使用這個控制元件時可能會引起這個錯誤。原因是控制元件初始化時,各個屬性未被顯式賦值。 解決辦法,給控制元件向外暴漏一初始化的方法,類似於這樣 public void XX
WPF 使用鼠標拖動一個控件的實現[2018.7.15]
ont wpf horizon edit 導致 cal 自己的 進行 sdn 原文:WPF 使用鼠標拖動一個控件的實現[2018.7.15] Q:已經把一個Shape和一個Text
教程:將WPF控制元件轉化為.dll檔案實現控制元件打包重用
最近公司在進行顯控軟體的升級,需要將現有程式的winform介面升級為WPF。由於是剛剛接觸C#和WPF,在開發過程中,自己摸索了一下自定義WPF控制元件的實現方法,在此做個總結。 先通過類庫編譯W
WPF介面控制元件Telerik UI for WPF釋出R2 2019 SP1|實現新的屬性
Telerik UI for WPF擁有超過100個控制元件來建立美觀、高效能的桌面應用程式,同時還能快速構建企業級辦公WPF應用
qt 畫多邊形(實現鼠標拖動節點)
開始 ack set eee del upd tip update lob ---恢復內容開始--- 2018-01-06 這個小例子實現了移動鼠標,鼠標的坐標信息跟隨鼠標移動,多邊形的實現,鼠標點擊可以拖動多邊形點的位置,(其中有個問題?我在QMainWi
正交相機下實現滾輪按鈕拖動,滾動滾輪縮放的功能
pix spa serial ext 分享 內容 onu bject 開始 實現了一個功能,鼠標滾輪鍵按下可以拖動視野內的物體全體(其實是相機自己在移動),滾動滾輪可以縮放內容(其實是改變相機視野大小) 效果如下 代碼奉上 1 using UnityE
C# WPF 歌詞控制元件(支援逐字定位描色效果)
原文: C# WPF 歌詞控制元件(支援逐字定位描色效果) 之前做了一個模仿網易雲歌詞的控制元件,實現了載入網易雲歌詞並能隨音樂播放進度定位歌詞。今天呢將在這個控制元件的基礎上增加逐字定位描色功能,如下圖效果(QQ音樂PC)所示: 我所使用的實現方法很簡單粗暴,把每句歌詞每個字切開,單
WPFのImage控制元件souce引入的方法總結
原文: WPFのImage控制元件souce引入的方法總結 1、後臺程式碼相對路徑新增(若為絕對路徑,換UriKind的屬性即可) BitmapImage testBitmapImage = new BitmapImage(new Uri(@"\bin\Sources\ON_bt
個人筆記005--原生JS實現簡單的拖動滑塊驗證
早上起來後瀏覽網站時看到別人的拖動滑塊驗證,就想著做一個demo,等到有時間把這個優化到到現在的專案(用的是圖片驗證碼)。以下程式碼就是百度之後再修改一下的: <!DOCTYPE html> <html> <head> <meta charset
【C#】WPF音樂控制元件
一、使用SoundPlayer SoundPlayer 只能支援WAV格式的檔案 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.
wpf TabControl控制元件的SelectionChanged方法
對於老手來說很簡單,但是新手我從百度上找了好久沒找到,最後還是去谷歌找到的,哎,萬能的google。 前端介面: <TabControl Margin="0,10,0,0" Name="TabControls" SelectionChanged="TabControl_SelectionChang