win10 uwp 獲得元素絕對座標

2022-01-15 07:40:46 字數 921 閱讀 7808

有時候需要獲得乙個元素,相對視窗的座標,在修改他的位置可以使用。

那麼 uwp 如何獲得元素座標?

我提供了乙個方法,可以獲得元素的座標。

首先需要獲得元素,如果沒有獲得元素,那麼如何得到他的座標?

假如 xaml 是這樣,而我需要獲得 maintextblock 相對視窗的座標

"maintextblock" margin="10,10,10,10"

text="hello" />

grid>

那麼獲得元素絕對座標可以這樣寫,絕對座標的意思就是元素相對視窗的座標。

public

mainpage()

上面**就可以獲得元素座標,座標相對於視窗

那麼如何獲得他相對其他元素的座標?

假如需要獲得元素相對他的上座標,這時可以看下面**

var t = maintextblock.transformtovisual((uielement)maintextblock.parent);

point screencoords = t.transformpoint(new point(0, 0));

於是可以看到transformtovisual傳入的是哪個元素,就是獲得相對於這個元素的座標。

獲得元素的座標有什麼用?可以用在如 flyout的定位,如果使用了 togglebutton ,他沒有自己 flyout ,所以就需要在其他地方定義乙個 flyout 然後通過獲得控制項位置顯示出來。如何指定 flyout 的位置參見 win10 uwp 右擊浮出窗在點選位置

所以就可以讓浮出窗在需要顯示的按鈕上顯示,下面的是我偷乙個大神的,他就是使用這個方法做出來。

參見:

win10 uwp 獲得焦點改變

本文講的是當我們應用失去焦點時,我們獲得事件,當我們應用獲得焦點,同樣獲得事件。同時,在應用不可以見時,我們也可以獲得。上面一張圖,開始是應用啟動,獲得焦點,應用顯示。然後我們開啟另乙個應用,切換,這時我們應用沒有焦點。然後我們用滑鼠點選應用,我們應用獲得焦點,這時顯示滑鼠點選獲得焦點。我們使用al...

win10 uwp 獲得Slider拖動結束的值

本文講的是如何獲得slider移動結束的值,也就是觸發移動後的值。如果我們監聽valuechanged,在我們滑鼠放開之前,只要拖動不放,那麼就不停觸發,而我們可能要得到事件是拖動結束後,那麼我們如何獲得。在wpf,我們可以使用thumb.dragcompleted,連線 這個在uwp沒有,所以我們...

win10 uwp 繫結密碼

win10 下,密碼框無法繫結到viewmodel,password是不可以繫結。我們可以自己使用簡單方法去繫結 我們之前在wpf 使用繫結密碼框,我寫了一篇,關於如何繫結,我提供乙個我自己試了可以的類。首先,我們新建乙個類,這個類是讓 passwordbox 可以繫結password。uwp讓 p...