欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一、簡(jiǎn)介

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

二、代碼案例

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

XAML:

    <Grid MouseLeftButtonUp="Grid_MouseLeftButtonUp">
        <Canvas>
            <!--三個(gè)圓形-->
            <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)左鍵,開始對(duì)鼠標(biāo)所在點(diǎn)進(jìn)行命中測(cè)試" />
        </Canvas>
    </Grid>

后臺(tái)邏輯:

        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)行命中測(cè)試的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論