wpfui界面設(shè)計(WPFUIinterfacedesign_第1頁
wpfui界面設(shè)計(WPFUIinterfacedesign_第2頁
wpfui界面設(shè)計(WPFUIinterfacedesign_第3頁
wpfui界面設(shè)計(WPFUIinterfacedesign_第4頁
wpfui界面設(shè)計(WPFUIinterfacedesign_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、wpf ui 界面設(shè)計(WPF UI interface design)wpf ui 界面設(shè)計(WPF UI interface design)使用系統(tǒng); 彳吏用 system collections generic;使用LIQ系統(tǒng);使用系統(tǒng)窗口;(吏用 sys tem. windows automat io n. peers;(吏用 system windows automat io n. provider;(吏用 system windows controls;彳吏用 system windows controls primitives: 彳吏用 system windows media;

2、(吏用 system windows media imaging;(吏用 system windows shapes;(吏用 codingdfun. kinect wpf;(吏用 coding4fun. kinect wpf. controls;使用微軟Kinect;命名空間 kinecthubdemo公共部分類主要窗口 :窗口kinectsensor Kinect;私有列表按鈕 按鈕;hoveredbutton 專用按鈕;私人布爾 iswindowsclosing 二假;摘要III啟動Kinect設(shè)備,默認初始化選項,并注冊allframesready同步事件/private void st

3、artkinect()如果(kinectsensor. kinectsensors. count 0)/ /選擇第一個Kinect設(shè)備Kinect = kinectsensor kinectsensors 0 ;如果(Kinect = NULL)返回;Kinecto COLORSTREAMo enable ();VaR TSP 二新 transformsmoothparameters0. 5f平滑二,0. 5f校正二,預(yù)測二0. of,jitterradius = 0.05f,maxdeviationradius = 0. 04f;Kinecto skeletonstream 使(TSP);/

4、 /啟用骨骼跟蹤,并在屏幕右下方顯示彩色視頻信息kinect. colorframeready + 二新 Eve nt Handler (kinect_colorframeready); kinect. skeletonframeready + 二新 Eve nt Handler (kinect_skeletonframeready); / /啟動Kinect設(shè)備 start () Kinect;其他的MessageBox顯示(沒有發(fā)現(xiàn)任何Kinect設(shè)備”);無效 kinect_skeletonfrdmeready(object sender,skeletonframereadyeventa

5、rgs E)使用(skeletonframe 框架二 E openskeletonframe ()如果(幀二NULL)返回;(frame, skeletonarraylength = = 0)返回;骨架allskeletons 二新的骨架 skeletonarraylength 幀;CopySkeletonDataTo (allskeletons)框架;The /Linq syntax searches for the closest tracked skeleton fromKinect, using the head Z coordinates as a referenceSkeleton

6、 closestSkeleton = (from, s, in, allSkeletons)Where = SkeletonTrackingState Tracked & s. TrackingStateS. JointsJointType.HeadTrackingState =JointTrackingState TrackedSelect s. 0rderBy (s) = s. JointsJointType.Head Position. Z) FirstOrDefault ();If (closestSkeleton = null)Return;If (closestSkeleton.

7、TrackingState =SkeletonTrackingState Tracked)Return;Var joints = closestSkeleton. Joints;Joint rightHand = jointsJointType.HandRight;Joint leftHand = jointsJointType.HandLeft;The Y axis / / judgment is right or left-handed habits: one hand to lift the Y axis is largerVar hand = (rightHand .Position.

8、 Y leftHand .Position. Y)RightHand?:leftHand;If (hand TrackingState = = JointTrackingState Tracked)Return;/ / get the screen width and heightInt screenWidth = (int) SystemParametersPrimaryScreenWidth;Int screenHeight = (int)SystemParameters PrimaryScreenHeight;The position of skeleton coordinate map

9、ping / hand to screen coordinates; hand only need to move in a limited range can cover the entire screen areaFloat, posX = hand ScaleTo (screenWidth, screenHeight, 0. 2f,0.2f). Position. X;Float, posY = hand ScaleTo (screenWidth, screenHeight, 0 2f,0. 2f). Position. Y;/ / judge whether suspended in

10、the picture button, then trigger the Click eventOnButtonLocationChanged (kinectButton, buttons, (int) posX, (int) posY);Void kinect_ColorFrameReady (object, sender,ColorImageFrameReadyEventArgs, e)Using (ColorImageFrame, colorFrame = e. 0penColorlmageFrame ()If (colorFrame = null)Return;The lower ri

11、ght corner of the screen display / color camera, using the CodingdFun. KinectWpf extension methodVideoimage Source = colorFrame ToBitmapSource ();Public, Ma inWindow ()InitializeComponent ();KinectButton.click + = new routedeventhandler (kinectbutton _ clicked);private void initializebuttons ()butto

12、ns = new list butto nlbutton2butto n3button4buttondbutton6;Ill (summary)/懸停選擇按鈕處理/-/ summary/ / / 1 前移動的懸浮手型光標 param/ / 圖片按鈕集合 param/ / skeletonhandx param/ / skeletonhandy paramprivate void onbuttonlocationchanged (hoverbutton hand, list buttons, int x, int y)if (isbuttonoverobject (hand, buttons)h

13、and, hovering () ; / / 觸發(fā) mouse click 事件elsehand release ();/ /移動手型光標canvassetleft (hand, x 一 (handactualwidth / 2);canvas .settop (hand, y 一 (handactualheight / 2);private void kinectbutton _ clicked (object sender, routedeventargs and)hoveredbutton. raiseevent (new routedeventargs (buttonbase clic

14、kevent, hoveredbutton);public bool isbuttonoverobject (frameworke1ement hand, list buttons)if (iswindowsclosing ! windowgetwindow (hand)isactive)return false;/ /找到懸浮手型控件的中心點位置var handtopleft = new point (canvasgettop (hand), canvasgetleft(hand);double handleft = handtopleft x + (hand actualwidth / 2

15、);double handtop = handtopleft y + (hand actualheight / 2);/遍歷圖片按鈕,判斷hand圖標是否懸浮在其中之一foreach (button target buttons)point targettopleft = targetpointtoscreen (new point ();if (handtop targettopleft x& handtop targettopleft y& handleft targettopleft y + target actualheight)hoveredbutton = target;retur

16、n true;return false;private void promotebuttonclickevent (string info)1istboxhoverevent items add (string format C 0: 1、info, datetime. now. tostring (t);private void buttonl _ click (object sender, routedeventargs and)promotebuttone1ickevent (button 1 clicked);private void button2 _ click (object s

17、ender, routedeventargsand)promotebuttone1ickevent (button 2 clicked);private void button3_click(object sender, routedeventargs E)promotebuttonclickevent (n 按鈕 3 單擊);private void button4_click(object sender, routedeventargs E)promotebuttonclickevent (n 按鈕 4 單擊“);private void button5_click(object send

18、er, routedeventargs E)promotebuttonclickevent (n 按鈕 5 單擊);private void button6_click(object sender, routedeventargs E)promotebut tone lickevent (n 按鈕 6 單擊);private void canvas_loaded(object sender, routedeventargs E)private void stopkinect()如果(Kinect)二 null)如果(kinect. status = = kinectstatuso 連接)/ /

19、關(guān)閉Kinect設(shè)備stop() Kinect;private void window_loaded(object sender, routedeventargs E)initializebuttons();startkinect ();private void window_closing(object sender, systein. componentmode 1 canceleventargs E)iswindowsclosing 二真;stopkinect ();窗口 X: class二 ukinecthubdemoo 主窗口WindowState =最大化”windowstyle

20、= u singleborderwindown xmlns 二nxmlns:x = “;背景二 “# lelc37”xmlns:控制二 “CLR 命名空間:coding4funo Kinecto WPF。控制;裝配二 coding4fun WPF。 Kinecto ”標題二 “Kinect 樞紐演示” height二 “800” width二 “1280”加載=uwindow_loadedM 關(guān)閉二 網(wǎng)格X:名稱二“網(wǎng)格” 畫布背景二透明”二 DataContext 綁定裝=操作:hoverbutton 緣二0” 二0 x:填料名稱二kinectbutton圖像大小 =“64”圖像源二/資源/

21、 hand_basic png”activeimagesource = /資源/ hand_basico png”時間間隔二“2000”二“525”畫布。離開畫布。二“32”面板,在“1000” / =按鈕帆布。左二“45”帆布。=118” height= 200” name= Buttonl” width二338” horizont alcontentalignment =正確”的 verticalcontentalignment =底 層”單擊二” buttonl_clickw 按鈕 背景按鈕 背景按鈕按鈕帆布。左二“455”二“115”畫布。頂部髙度=200” name二button2” width二335” horizontalcontentalignment =正確的 verticalcontentalignment =底層單擊二” button2_clickn 按鈕背景按鈕 背景按鈕按鈕帆布。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論