亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

WPF使用VisualTreeHelper進(jìn)行命中測試

 更新時間:2022年04月21日 16:06:03   作者:農(nóng)碼一生  
這篇文章介紹了WPF使用VisualTreeHelper進(jìn)行命中測試的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、簡介

我們有時候又需求從當(dāng)前視覺樹中找一些東西,比如鼠標(biāo)按下的時候,看看鼠標(biāo)下的元素都有什么。又比如某塊區(qū)域下有哪些元素?某個坐標(biāo)點(diǎn)下有哪些元素?這些需求在使用 命中測試的時候,可以非常方便和快速的去找到我們需要的內(nèi)容。

二、代碼案例

我在一個畫板上在不同的位置放了3個圓形。給他們放置了不同的位置和填充不同的顏色,我們通過命中測試判斷如果鼠標(biāo)在圓上抬起了,我們讀取當(dāng)前圓的填充顏色。 

XAML:

    <Grid MouseLeftButtonUp="Grid_MouseLeftButtonUp">
        <Canvas>
            <!--三個圓形-->
            <Ellipse  Canvas.Left="30" Canvas.Top="200"  Width="130" Height="130" Fill="Blue"/>
            <Ellipse  Canvas.Left="110" Canvas.Top="0"  Width="130" Height="130" Fill="Red"/>
            <Ellipse   Canvas.Left="220" Canvas.Top="100"  Width="130" Height="130" Fill="Yellow"/>
            <TextBlock  Canvas.Left="0" Canvas.Top="0" Text="抬起鼠標(biāo)左鍵,開始對鼠標(biāo)所在點(diǎn)進(jìn)行命中測試" />
        </Canvas>
    </Grid>

后臺邏輯:

        private void Grid_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            var ellipse = GetVisual(e.GetPosition(this));
            MessageBox.Show(ellipse?.Fill?.ToString());
        }

        private Ellipse GetVisual(Point point)
        {
            HitTestResult hitResult = VisualTreeHelper.HitTest(this, point);
            var ellipse = hitResult.VisualHit as Ellipse;
            return ellipse;
        }

三、運(yùn)行效果

到此這篇關(guān)于WPF使用VisualTreeHelper進(jìn)行命中測試的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 對ListBox的添加移除操作實(shí)例分享

    對ListBox的添加移除操作實(shí)例分享

    ListBox的添加移除操作在開發(fā)過程中經(jīng)常會遇到過,接下來本文也實(shí)現(xiàn)一個,思路很清晰,感興趣的朋友可以參考下,希望可以幫助到你
    2013-04-04
  • asp.net c#采集需要登錄頁面的實(shí)現(xiàn)原理及代碼

    asp.net c#采集需要登錄頁面的實(shí)現(xiàn)原理及代碼

    當(dāng)我們采集頁面的時候,如果被采集的網(wǎng)站需要登錄才能采集,原理搞清楚了,就好辦了,我們所要做的僅僅是在采集的時候(或者說HttpWebRequest提交數(shù)據(jù)的時候),將Cookie信息放入Http請求頭里面就可以了,感興趣的朋友可以了解下,或許對你有所幫助
    2013-02-02
  • .net 中按.(點(diǎn))無法智能提示的bug解決方案

    .net 中按.(點(diǎn))無法智能提示的bug解決方案

    IDE按.無法智能提示,但是可以編譯并正常使用,在修改別人代碼bug時遇到的,接下來為你提供詳細(xì)解決方法,感興趣的你可以參考下哈
    2013-03-03
  • 合并兩個DataSet的數(shù)據(jù)內(nèi)容的方法

    合并兩個DataSet的數(shù)據(jù)內(nèi)容的方法

    合并兩個DataSet的數(shù)據(jù)內(nèi)容的方法,需要的朋友可以參考一下
    2013-03-03
  • ASP.Net緩存總結(jié)及分析 分享

    ASP.Net緩存總結(jié)及分析 分享

    提高性能最好最快的辦法當(dāng)然是通過緩存來改善,對于任何一個web開發(fā)者都應(yīng)該善用緩存。Asp.net下的緩存機(jī)制十分強(qiáng)大,用好緩存機(jī)制可以讓我們極大的改善web應(yīng)用的性能,下面是一些總結(jié)的緩存的知識點(diǎn),與大家分享交流:
    2013-06-06
  • 安裝.NET Framework進(jìn)度條卡住不動的解決方案(推薦)

    安裝.NET Framework進(jìn)度條卡住不動的解決方案(推薦)

    VS在安裝之前需要安裝.NET Framework,我安裝的是4.0版本。但是安裝進(jìn)度條到一半左右時就卡住不動了。前前后后重試多次,還有幾次重新開機(jī),但都沒用,怎么解決呢,下面給大家分享下解決方案
    2016-12-12
  • jQuery實(shí)現(xiàn)金額錄入框

    jQuery實(shí)現(xiàn)金額錄入框

    前端開發(fā)過程中,通常會用到數(shù)值錄入框,比如要求輸入金額,禁止錄入非數(shù)值字符,也禁止粘貼非數(shù)值字符,本文主要對其實(shí)現(xiàn)方法進(jìn)行介紹,需要的朋友一起來看下吧
    2016-12-12
  • Json.net日期格式化設(shè)置方式

    Json.net日期格式化設(shè)置方式

    這篇文章主要介紹了Json.net日期格式化設(shè)置方式,文中給大家補(bǔ)充介紹了json.net 使用屬性定義日期的序列化格式,需要的朋友可以參考下
    2018-11-11
  • .net中實(shí)現(xiàn)listBox左右移動

    .net中實(shí)現(xiàn)listBox左右移動

    這里給大家推薦的是一段網(wǎng)友分享的,使用.net實(shí)現(xiàn)listBox左右移動的代碼,簡單實(shí)用,這里記錄下來,有需要的小伙伴參考下吧。
    2015-03-03
  • 詳解在Windows下如何使用AspNetCore Api 和consul

    詳解在Windows下如何使用AspNetCore Api 和consul

    這篇文章主要介紹了詳解在Windows下如何使用AspNetCore Api 和consul,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06

最新評論