黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

PointFromScreen和PointFromScreen的用法和區別

系統 2239 0

如下面的xaml代碼:

??

< Window x:Class = " WindowsApplication5.Window1 "

xmlns = " http://schemas.microsoft.com/winfx/2006/xaml/presentation "

xmlns:x = " http://schemas.microsoft.com/winfx/2006/xaml "

Title = " WindowsApplication5 " Height = " 300 " Width = " 300 " WindowStartupLocation = " CenterScreen "

>

< Grid >

< Canvas Name = " canvas " >

< Button Name = " btnClick " Width = " 30 " Height = " 20 " Canvas.Left = " 50 " Canvas.Top = " 50 " VerticalAlignment = " Center " HorizontalAlignment = " Center " > click me </ Button >

</ Canvas >

</ Grid >

</ Window >

在Canvas上面有一個Button,btnClick相對于canvas的位置是50和50,該窗體最后運行出來相對于屏幕的

位置如下圖所示:

PointFromScreen和PointFromScreen的用法和區別

?

UIElement.PointFromScreen(Point):參數是屏幕Screen中的一個坐標點,這個函數的作用是把Screen中的一個點的坐標轉換成該窗體Window中的坐標,參照點是UIElement的位置(當作(0,0)),所以:

btnClick.PointFromScreen( new Point (0, 0));?值為

(-416,-292)? -- screen的(0,0)相對于btnClick的topleft(當作(0,0))的坐標。

btnClick.PointFromScreen( new Point (50, 50));

值為 ? (-366,-242) -- screen的(50,50)相對于btnClick的topleft(當作(0,0))的坐標。

canvas.PointFromScreen( new Point (0, 0));

值為 (-366,-242) -- screen的(0,0)相對于canvas的topleft(當作(0,0))的坐標。

Canvas .GetLeft(btnClick); 值為50

Canvas .GetTop(btnClick);? 值為50

UIElement.PointToScreen(Point):參數是窗體Window中的一個坐標,參照點是相對于UIElement(位置當作(0,0)),偏移量為Point的一個點,返回該點在Screen中的坐標:

btnClick.PointToScreen( new Point (50,50)); // (466,342)

canvas.PointToScreen( new Point (50,50)); // (416,292)

注意屏幕的左上角的坐標是(0,0)。

另外學習

e.GetPosition(UIElement)的用法,也可以用Mouse.GetPosition(UIElement)達到相同的效果。

通常e是一個鼠標單擊事件的EventArgs,例如:

btnClick.PreviewMouseLeftButtonDown += new MouseButtonEventHandler

(btnClick_PreviewMouseLeftButtonDown);

void btnClick_PreviewMouseLeftButtonDown( object sender, MouseButtonEventArgs e)

{

Point p1 = e.GetPosition(sender as Button );

Point p2 = e.GetPosition(canvas);

}

如果我單擊btnClick上很靠近左上角的一個地方,假設該點相對于btnClick左上角的坐標是(2,2),

那么p1的值是(2,2),p2(52,52)。

PointFromScreen和PointFromScreen的用法和區別


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論