Windows 基础触屏和高级触屏

基础触屏

1多点触屏(Multi_Touch).

         Multi-TouchGesture(通过轴来实现)/All Point(互电容)

     多指多人同时操作

         个性化

2.Multi-Touch Vista(多点触屏模拟)

        下载地址: http://Multitouchvista.codeplex.com

解压后,运行Driver:installdriver.com

设置计算机管理-设备管理-Universal SoftWare HID Device -Disabled -anled

运行Multitouch.Service.Console.exe(运行后不要关闭)

运行Multitouch.Driver.Console.exe

运行Multitouch.Configuration.WPF.exe

 

注意事项:Driver Publisher Warning (选择继续)

                     Universal Software HID device (重新启用一下)

3.基本触屏操作:

Raw Touch:基本触屏;

触碰:Touch Down

分离:Touch up

移动:Touch Move

 

Demo:

Private Dictionary<int, Ellipse >movingEllipses=new Dictionary<int, Ellipse >();

Private Random rand=new Random();//用于生成随机数

Private void touchpad_TouchDown(objectssender,TouchEventsASrgs e)

{

Ellipse ellipse=new Ellipse();当手触摸的时候产生一个圆圈

ellipse.Width=30;圆宽

ellipse.Height=30;圆高

ellipse.Stroke=Brushes.Write;边框颜色

ellipse.Fill=new SolidColorBrush(Corlor.FromRgb((byte).rand.Next(0,255),(byte).rand.Next(0,255), (byte).rand.Next(0,255)));生成随机数

TouchPoint touchpoint=e.GetTouchPoint(this.Grid1);

Canvas.SetTop(ellipse,touchpiont.Bounds.Top);

Canvas.SetLeft(ellipse,touchpiont.Bounds.Left);

movingEllipses[e.TouchDevice.Id]=ellipse;、、保存每个圆圈和ID

touchpad.Children.Add(ellipse);//把圆圈加到touchpad中(touchpad是一个Grid)

}

 

Private void touchpad_TouchUp(objectssender,TouchEventsASrgs e)

{

         //把圆圈移除掉

         Ellipseellipse= movingEllipses[e.TouchDevice.Id];

         Touchpad.Children.Remove(ellipse);

movingEllipses.Remove(ellipse);

}

 

Private void touchpad_TouchMove(objectssender,TouchEventsASrgs e)

{

         Ellipseellipse= movingEllipses[e.TouchDevice.Id];

         TouchPionttouchpiont=e.GetTouchPiont(touchpad);

Canvas.SetTop(ellipse,touchpiont.Bounds.Top);

Canvas.SetLeft(ellipse,touchpiont.Bounds.Left);

}

 

 

高级触屏操作:(旋转,缩放,移动)

高级触屏5种状态:

         ManipulationStarting  开始

ManipulationStarted  开始状态

ManipulationDelta    持续状态

ManipulationInertiaStarting惯性

ManipulationCompleted完成

 

 Expression Blend4:

<CanvasX:Name=”touchpad” ------------à// image  要设置成支持多点触屏操作

<image  Canvas.Top=”” Canvas.Left=””  source=” ”IsmanipulationEnabled=”true”>

<Image.Rendtransform>

<MatrixTransform></MatrixTransform>

</Image.Rendtranform>

</image>

<image   Canvas.Top=”” Canvas.Left=””  source=” ”></image>

<image     Canvas.Top=””  Canvas.Left=””  source=” ”></image>

</Canvas>

 

 

 

Private voidtouchpad_manipulationStarting(objects sender,TouchEventsASrgs e)

{

         e.ManipulationContainer=this.touchpad;//定义容器

         e.Mode=ManipulationModes.All;//定义在容器当中我们都可以做什么操作,选择了All说明什么都可以做

        

}

 

Private voidtouchpad_manipulationDelta(objects sender,TouchEventsASrgs e)

{

         FrameWorkElementelement=( FrameWorkElement)e.Source;

         Element.Opacoty=0.5;

        

//存放所有操作状态

Matrix matrix=((MatrixTransform)element.Rendtransform).Matrix;

//得到中心点

Point center=newPiont (element.ActualWidth/2,element.ActualHGeight/2);

Center=matrix.Transform(Center);//变化的中心点

//缩放

Matrix.ScaleAt(e.DeltaManipulation.Scal.X,e.DeltaManipulation.Scal.Y,center.X,center.Y);

        

         //旋转

         Matrix.RotateAt(e.DeltaManipulation.Rotation,center,x,center.y);

        

//移动

         Matrix.translate(e.DeltaManipulation.Translation.X,e.DeltaManipulation.Translation.Y);

        

         ((MatrixTransform)element.RenderTransform).Matrix=matrix;

}

 

Private voidtouchpad_manipulationCompleted(objects sender,TouchEventsASrgs e)

{

         FrameworkElementelement=( FrameworkElement)e.Source;

         Element.Opcity=1;

}

 

//添加惯性状态,使其有物理特性

Private voidtouchpad_manipulationInertiastarting(objects sender,TouchEventsASrgs e)

{

         e.TranslationBehavior=newInertiaTranslationBehavor();

         e.TranslationBehavor.InitiaVelocity=e.InitiaVelocities.LinearVelocity//初始速度,线性运动

         e.TranslationBehavor .DesiresDeceleration=10.0*96.0/(1000.0*1000.0)//减速状态

 

      e.TranslationBehavior=new InertiaExpansionBehavor();//平移

         e.TranslationBehavor.InitiaVelocity=e.InitiaVelocities.LinearVelocity//初始速度,线性运动

         e.TranslationBehavor .DesiresDeceleration=10.0*96.0/(1000.0*1000.0)//减速状态

 

         e.ExpansionBehavior=newInertiaTranslationBehavor();//缩放

         e.ExpansionBehavior.InitiaVelocity=e.InitiaVelocities.LinearVelocity//初始速度,线性运动

         e.ExpansionBehavior.DesiresDeceleration=10.0*96.0/(1000.0*1000.0)//减速状态

 

 

         e.RotationBehavior=newInertiaRotationBehavor();//旋转

         e.RotationBehavior.InitiaVelocity=e.InitiaVelocities.LinearVelocity//初始速度,线性运动

         e.RotationBehavior.DesiresDeceleration=10.0*96.0/(1000.0*1000.0)//减速状态

 

}

 

 

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值