<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      WPF Multi-Touch 開發:基礎觸屏操作(Raw Touch)

           多點觸控(Multi-Touch)就是通過與觸屏設備的接觸達到人與應用程序交互的操作過程。例如,生活中經常使用的觸屏手機、觸屏筆記本、顯示器以及微軟最新的Surface 產品等這些都屬于觸屏操作設備。本篇將介紹如何開發能夠支持MT 功能的應用程序。

           在WPF 4 中已經具備的多點觸控開發技術,當多個手指觸碰到觸屏設備時,WPF 會把每跟手指認為是一個觸控設備,并為其分配唯一的識別ID,以便跟蹤不同手指的操作手勢。下面將通過實例演示WPF 所支持的低級別觸控操作:觸碰(TouchDown)、分離(TouchUp)、移動(TouchMove),它們都是一些最基礎的操作模式。

      創建項目

           新建項目在XAML中寫入如下代碼,<Grid>中只添加了<Canvas> 控件,其中包含TouchDown、TouchUp、TouchMove 三個基礎觸控事件。當手指觸碰程序時便會在Canvas 中生成彩色圓圈,圓圈的位置隨手指的移動而改變,手指離開觸屏的同時圓圈消失。接下來將逐一講解每個事件所完成的任務。

      <Window x:Class="WpfRawTouch.MainWindow"
              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
              Title="MainWindow" Height="350" Width="525">
          <Grid>
              <Canvas x:Name="touchPad" Background="Gray"
                      TouchDown="touchPad_TouchDown" TouchUp="touchPad_TouchUp" 
                      TouchMove="touchPad_TouchMove">
              </Canvas>
          </Grid>
      </Window>
      

           TouchDown 事件主要是完成當觸碰產生時在<Canvas> 控件中生成彩色圓圈的任務(C#代碼如下)。使用Ellipse 創建隨機顏色的圓圈,通過GetTouchPoint 方法獲取觸碰位置點,并調整圓圈在<Canvas> 中的位置。為了跟蹤手指移動軌跡,需要將觸屏設備ID 及UI 控件存儲在集合movingEllipses 中。

      private Dictionary<int, Ellipse> movingEllipses = new Dictionary<int, Ellipse>();
      Random rd = new Random();
      
      private void touchPad_TouchDown(object sender, TouchEventArgs e)
      {
          Ellipse ellipse = new Ellipse();
          ellipse.Width = 30;
          ellipse.Height = 30;
          ellipse.Stroke = Brushes.White;
          ellipse.Fill = new SolidColorBrush(
              Color.FromRgb(
                  (byte)rd.Next(0, 255),
                  (byte)rd.Next(0, 255),
                  (byte)rd.Next(0, 255))
                  );
      
          TouchPoint touchPoint = e.GetTouchPoint(touchPad);
          Canvas.SetTop(ellipse, touchPoint.Bounds.Top);
          Canvas.SetLeft(ellipse, touchPoint.Bounds.Left);
      
          movingEllipses[e.TouchDevice.Id] = ellipse;
      
          touchPad.Children.Add(ellipse);
      }

           當手指離開觸屏時TouchUp 事件將被觸發,首先將觸碰設備從movingEllipses 集合中刪除不再跟蹤手指相關操作,并從<Canvas> 中將彩色圓圈移除。

      private void touchPad_TouchUp(object sender, TouchEventArgs e)
      {
          movingEllipses.Remove(e.TouchDevice.Id);
          Ellipse ellipse = movingEllipses[e.TouchDevice.Id];
          touchPad.Children.Remove(ellipse);
      }

           當手指在觸屏上持續移動時TouchMove 事件觸發,它來跟蹤手指移動軌跡,并重新調整圓圈在<Canvas> 中的位置。

      private void touchPad_TouchMove(object sender, TouchEventArgs e)
      {
          Ellipse ellipse = movingEllipses[e.TouchDevice.Id];
          TouchPoint touchPoint = e.GetTouchPoint(touchPad);
          Canvas.SetTop(ellipse, touchPoint.Bounds.Top);
          Canvas.SetLeft(ellipse, touchPoint.Bounds.Left);
      }

      程序演示

           至此,一個簡單的觸控應用程序就完成了編譯并運行該程序,用手指觸碰屏幕并持續移動看看是否會出現下面視頻中的情況(如果沒有多點觸屏設備請參考這里解決)。

       

      源碼下載

      WpfRawTouch.zip

      posted @ 2010-08-17 12:05  Gnie  閱讀(27915)  評論(36)    收藏  舉報
      Copyright © 2010 Gnie
      主站蜘蛛池模板: 亚日韩精品一区二区三区| 欲色欲色天天天www| 亚洲sm另类一区二区三区| AV无码不卡一区二区三区| 18成人片黄网站www| 一级片黄色一区二区三区| 婷婷久久香蕉五月综合加勒比| 羞羞影院午夜男女爽爽免费视频| 成全影视大全在线观看| 5D肉蒲团之性战奶水欧美| 亚洲国产中文在线有精品| 97久久精品人人做人人爽| 亚洲AV日韩精品久久久久| 无码中文字幕人妻在线一区二区三区| 午夜福利片一区二区三区| 久久午夜无码鲁丝片直播午夜精品| 亚洲成A人片在线观看的电影| 少妇人妻av毛片在线看| 放荡的少妇2欧美版| 亚洲乱色一区二区三区丝袜| 国产95在线 | 亚洲| 久久免费观看归女高潮特黄| bt天堂新版中文在线| 亚洲成人av综合一区| 久久大香线蕉国产精品免费| 无码一区中文字幕| 加勒比无码人妻东京热| 茂名市| 国产一区二区不卡精品视频| 日本福利一区二区精品| 国产成人不卡无码免费视频| 亚洲一级片一区二区三区| 婷婷综合亚洲| 黄色一级片一区二区三区| 国产一区二区高清不卡| 宾馆人妻4P互换视频| 亚洲 欧美 中文 日韩aⅴ | 9lporm自拍视频区| 麻豆a级片| 精品一区二区久久久久久久网站 | 日本伊人色综合网|