<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          WPF實現(xiàn)手勢解鎖

          共 1351字,需瀏覽 3分鐘

           ·

          2020-09-12 19:49

          桌面程序的解鎖方式一般是賬號密碼,互聯(lián)網(wǎng)的可以使用掃碼解鎖,甚至人臉識別。但掃碼需要網(wǎng)絡(luò),人臉識別又較復(fù)雜。所以就想把安卓常用的手勢解鎖移植到桌面程序上。

          先來張效果圖,有興趣的往下看,沒興趣的打擾了。

          WPF手勢解鎖使用鼠標點擊事件,鼠標移動事件,鼠標彈起事件實現(xiàn)。自定義了三個屬性(初始化顏色,選中顏色,選中點的集合),一個事件(繪制完成后觸發(fā)的事件)。

          實現(xiàn)的功能:

            繪制過程中直線隨鼠標移動的效果

            繪制兩個連接點的連線

            繪制完成后可調(diào)用的事件

            實現(xiàn)初始化顏色,選中顏色,選擇連接點依賴屬性

          源碼主要說明:

          1.構(gòu)造函數(shù),完成事件注冊

          2.窗體加載事件

          繪制九宮格,tag用動態(tài)類型保存了實際位置(Point)和序號(Loaction)

          3.鼠標左鍵點擊事件

          3.1清空了除九宮格之外所有元素

          3.2判斷點擊位置是否是圓點位置,如果不是則不處理,否則記錄當前位置用于畫線,一條是跟蹤鼠標的線(currentLine),另一個是為了顯示選中的圓點的連線,此處記錄繪制線的第一個點(currentEllipse與后續(xù)經(jīng)過的點的連線).

          4.鼠標移動事件

          4.1繪制跟隨鼠標的線

          4.2判斷是否經(jīng)過之前沒經(jīng)過的圓點,繪線過程中,一個點只能用一次。經(jīng)過的點保存在ellipseList集合中。

          4.3如果經(jīng)過未曾經(jīng)過的點,則與上個經(jīng)過的點繪制直線,并且重新賦值當前點currentEllipse,重新定義跟隨鼠標的線(currentLine)的起始點為該點。

          4.4把點添加到Points集合中

          5.鼠標左鍵彈起事件

          5.1鼠標彈起時,修改所有經(jīng)過的點以及點之間的連線顏色。

          5.2清空所有使用的臨時的變量,currentEllipse,currentLine

          5.3觸發(fā)繪制后觸發(fā)的事件(AfterDraw)

          6.選中點和線的顏色,SelectedColor屬性

          設(shè)置該顏色時,需要同時修改選中的點和線的顏色。

          7.繪制用的點的集合Points

          綁定Points屬性,后臺就可以獲取到繪制圖案經(jīng)歷的點的集合。

          8.其他代碼

          其他包含初始顏色,繪制完成以后觸發(fā)的事件,以及使用到的變量。見源碼。

          9.利用該控件實現(xiàn)解鎖

          9.1綁定三個屬性一個事件,分別是初始化顏色(Color),選中的顏色(SelectedColor),經(jīng)過的點(Points)

          9.2SelectedColor綁定方式

          需要一個轉(zhuǎn)換器(驗證正確與否與顏色的轉(zhuǎn)換),如果驗證正確,則顯示綠色,否則顯示紅色。

          9.3如果連接的點太少時,則需進行提示,并且恢復(fù)原來的狀態(tài)(即把選中的顏色設(shè)置為初始化的顏色)

          參考:https://www.cnblogs.com/ShenNan/p/5587009.html

          源碼:沒找到上傳附件,附上碼云地址。

          https://gitee.com/yiyecao/temporary-components

          本文轉(zhuǎn)載自博客園:https://www.cnblogs.com/yiyecao/p/13627233.html


          瀏覽 24
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  WWW.日韩AV电影 | 丁香婷婷五月激情综合 | 那个网站可以看毛片 | 免费视频91蜜桃 | 日本黄页网站免费大全 |