コード例 #1
0
        public void CaptureSubTree()
        {
            Run(() =>
            {
                window                 = new TestWindow();
                window.NewContact     += HandleEvent;
                window.ContactMoved   += HandleEvent;
                window.ContactRemoved += HandleEvent;
                window.Show();

                HwndSource source = (HwndSource)PresentationSource.FromVisual(window);

                window.ExecuteOnNextContact(c => c.Capture(window.list, CaptureMode.Element));

                RawMultitouchReport report = new RawMultitouchReport(CreateContact(GetContactData(0, ContactState.New, new Point(310, 100)), 0, source));
                InputManager.Current.ProcessInput(report);

                report = new RawMultitouchReport(CreateContact(GetContactData(0, ContactState.Moved, new Point(310, 180)), 1, source));
                InputManager.Current.ProcessInput(report);

                report = new RawMultitouchReport(CreateContact(GetContactData(0, ContactState.Moved, new Point(310, 200)), 2, source));
                InputManager.Current.ProcessInput(report);

                report = new RawMultitouchReport(CreateContact(GetContactData(0, ContactState.Removed, new Point(310, 230)), 3, source));
                InputManager.Current.ProcessInput(report);

                Dispatcher.ExitAllFrames();

                resetEvent.Set();
            });
            resetEvent.WaitOne();

            Assert.AreEqual(4, events.Count);

            RoutedEventArgsInfo dequeue = events.Dequeue();

            CheckContactEventArgs(dequeue, MultitouchScreen.NewContactEvent, window.b1);             // 100,100
            dequeue = events.Dequeue();
            CheckContactEventArgs(dequeue, MultitouchScreen.ContactMovedEvent, window.b1);           //130,100
            dequeue = events.Dequeue();
            CheckContactEventArgs(dequeue, MultitouchScreen.ContactMovedEvent, window.b1);           //200,100
            dequeue = events.Dequeue();
            CheckContactEventArgs(dequeue, MultitouchScreen.ContactRemovedEvent, window.b1);         //250,10
        }
コード例 #2
0
ファイル: CaptureTests.cs プロジェクト: zhuangfangwang/ise
		public void CaptureElement()
		{
			Run(() =>
				{
					window = new TestWindow();
					window.NewContact += HandleEvent;
					window.ContactMoved += HandleEvent;
					window.ContactRemoved += HandleEvent;
					window.Show();

					HwndSource source = (HwndSource)PresentationSource.FromVisual(window);

					window.ExecuteOnNextContact(c => c.Capture(window.testElement));

					RawMultitouchReport report = new RawMultitouchReport(CreateContact(GetContactData(0, ContactState.New, new Point(100, 100)), 0, source));
					InputManager.Current.ProcessInput(report);

					report = new RawMultitouchReport(CreateContact(GetContactData(0, ContactState.Moved, new Point(130, 100)), 1, source));
					InputManager.Current.ProcessInput(report);

					report = new RawMultitouchReport(CreateContact(GetContactData(0, ContactState.Moved, new Point(200, 100)), 2, source));
					InputManager.Current.ProcessInput(report);

					report = new RawMultitouchReport(CreateContact(GetContactData(0, ContactState.Removed, new Point(250, 100)), 3, source));
					InputManager.Current.ProcessInput(report);

					Dispatcher.ExitAllFrames();

					resetEvent.Set();

				});
			resetEvent.WaitOne();

			Assert.AreEqual(4, events.Count);

			RoutedEventArgsInfo dequeue = events.Dequeue();
			CheckContactEventArgs(dequeue, MultitouchScreen.NewContactEvent, window.testElement); // 100,100
			dequeue = events.Dequeue();
			CheckContactEventArgs(dequeue, MultitouchScreen.ContactMovedEvent, window.testElement); //130,100
			dequeue = events.Dequeue();
			CheckContactEventArgs(dequeue, MultitouchScreen.ContactMovedEvent, window.testElement); //200,100
			dequeue = events.Dequeue();
			CheckContactEventArgs(dequeue, MultitouchScreen.ContactRemovedEvent, window.testElement); //250,100
		}
コード例 #3
0
ファイル: CaptureTests.cs プロジェクト: zhuangfangwang/ise
		public void MultipleContactsCaptureSameObject()
		{
			Run(()=>
			    {
			    	window = new TestWindow();
					window.NewContact += HandleEvent;
					window.Show();

					HwndSource source = (HwndSource)PresentationSource.FromVisual(window);

					Assert.AreEqual(0, MultitouchScreen.GetContactsCaptured(window.testElement2).Count());
					Assert.AreEqual(0, MultitouchScreen.GetContactsCaptured(window.testElement).Count());
					window.ExecuteOnNextContact(c=>c.Capture(window.testElement));

					RawMultitouchReport report = new RawMultitouchReport(CreateContact(GetContactData(0, ContactState.New, new Point(100, 100)), 0, source));
					InputManager.Current.ProcessInput(report);

					Assert.AreEqual(1, MultitouchScreen.GetContactsCaptured(window.testElement).Count());
                    window.ExecuteOnNextContact(c => c.Capture(window.testElement));

					report = new RawMultitouchReport(CreateContact(GetContactData(1, ContactState.New, new Point(100, 100)), 1, source));
					InputManager.Current.ProcessInput(report);

					Assert.AreEqual(2, MultitouchScreen.GetContactsCaptured(window.testElement).Count());
					Assert.AreEqual(0, MultitouchScreen.GetContactsCaptured(window.testElement2).Count());

					Dispatcher.ExitAllFrames();
					resetEvent.Set();
				});
			resetEvent.WaitOne();
		}