做出來的效果先請大家看一下
最簡單的方法是在 down 的時候記錄按下的點,在 移動的時候重新計算所在的寬度
先在介面使用乙個和乙個矩形
<
grid x:name=
"grid"
>
<
image source=
"tim截圖20180811150831.png"
>
<
/image>
<
textblock horizontalalignment=
"center" verticalalignment=
"center"
<
/textblock>
<
rectangle x:name=
"rectangle" strokethickness=
"2" stroke=
"black" horizontalalignment=
"left" verticalalignment=
"top"
>
<
/rectangle>
<
/grid>
需要注意,的位置需要修改為自己需要的
這裡的rectangle
需要做一些設定,主要horizontalalignment
和verticalalignment
必須設定為左上角
現在開啟 cs **,在按下和移動修改矩形
mousedown +
= mainwindow_mousedown;
mousemove +
= mainwindow_mousemove;
mouseup +
= mainwindow_mouseup;
需要兩個欄位來記錄當前是否按下和第一次按下所在的座標
剛才給grid
的命名就是為了拿到相對 grid 的座標
private
void
mainwindow_mousedown
(object sender,
mousebuttoneventargs e)
private
bool _started;
private
point _downpoint;
在滑鼠按下時拿到按下的座標,通過這個座標就可以計算出矩形所在的位置
private
void
mainwindow_mouseup
(object sender,
mousebuttoneventargs e)
private
void
mainwindow_mousemove
(object sender,
mouseeventargs e)
}
**就是這麼簡單,通過修改margin
的方法修改矩形
如果對於高手,我建議使用rendertransform
的方式而不是使用margin
這裡使用這個方法只是看起來簡單
因為效能最差 canvas.setleft canvas.settop,效能中等 margin,效能最好 rendertransform 當然使用 rendertransform 的方法沒有使用 margin 那樣容易了解
WPF 在image控制項用滑鼠拖拽出矩形
做出來的效果先請大家看一下 最簡單的方法是在 down 的時候記錄按下的點,在 移動的時候重新計算所在的寬度 先在介面使用乙個和乙個矩形 grid x name grid image source tim截圖20180811150831.png image textblock horizontala...
WPF 在image控制項用滑鼠拖拽出矩形
原文 wpf 在image控制項用滑鼠拖拽出矩形 今天有小夥伴問我乙個問題,在image控制項用滑鼠拖拽出矩形,本文告訴大家如何使用滑鼠畫出矩形 做出來的效果先請大家看一下 最簡單的方法是在 down 的時候記錄按下的點,在 移動的時候重新計算所在的寬度 先在介面使用乙個和乙個矩形 grid x n...
用WPF做報表控制項(一)
datagrid是wpf自帶的報表控制項,但其功能簡單,很多時候無法滿足我們的需求。第三方庫 如devexpress 報表功能強大,但一方面資源消耗比較多,另一方面效能也較差,在一些比較差的電腦上執行很吃力。我之前就嘗試過在工控機上使用devexpress,每次啟動都需要等幾秒甚至十幾秒半分鐘,體驗...