windows phone (17) ManipulationDelta事件

原文:windows phone (17) ManipulationDelta事件

 

ManipulationDelta事件会是在触摸位置发生变化是引发,比如可以根据用户在触摸屏中移动的位置,图片发生相应的位移,根据客户两手指在触摸屏上的位置,进行图片的放大缩小;这里用到的案例就是对图片实现位移和缩放;

MainPage.xaml主要代码:

 

 <!--ContentPanel - 在此处放置其他内容-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <Image Source="1.jpg" x:Name="imgScale" Width="200" Height="200"  ManipulationDelta="imgScale_ManipulationDelta" >              
            </Image>
        </Grid>

 效果:

 

 从上面可以看到我们引用了一张图片,并设置了ManipulationDelta事件,该事件的实现是:

View Code

  private void imgScale_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
        {
            Image els = sender as Image;
            CompositeTransform ct = new CompositeTransform();
            ct.TranslateX = 0;
           
         
            if (e.DeltaManipulation.Scale.X!=0||e.DeltaManipulation.Scale.Y!=0)
            {
                double maxOne = Math.Max(e.DeltaManipulation.Scale.Y, e.DeltaManipulation.Scale.X);
                ct.ScaleX *= maxOne;
                ct.ScaleY *= maxOne;

            }
            //e.IsInertial
            
            this.PageTitle.Text = "移动,X:" + e.ManipulationOrigin.X.ToString() + "\nY:" + e.ManipulationOrigin.Y.ToString();
            ct.TranslateX = e.DeltaManipulation.Translation.X;
            ct.TranslateY = e.DeltaManipulation.Translation.Y;
            els.RenderTransform = ct;
            e.Handled = true;
        }

 上述代码的藐视:获得xaml中已经实例的Ellipse对象,并实例化一个新的CompositeTransform对象,判断缩放的比例是否为空,如果不为空,判断在X轴和Y轴哪个比例较大,取较大者作为缩放比例,然后实现相应的位移;这里用到的几个知识点是:

 

sender as [元素类] 获得发生该事件的元素

 

 

e.DeltaManipulation 获得最近发生的更改

 

e.DeltaManipulation.Scale 官方:获取操作已调整的作为乘数的量 (我的理解:获取移动的值并作为放大缩小的比例值),可继续点出对应的X,Y值
e.DeltaManipulation.Translation 获取通过触摸移动的尺寸,可继续点出对应的X,Y值
 

e.ManipulationOrigin 获得操作的起始点,可继续点出对应的X,Y值

 

e.IsInertial 获取是否在惯性运动期间发生 ManipulationDelta 事件,在上一篇中介绍到变换,你会发现很多文字都会超出文本所能承受的区域,此时就可以判断文字的变换效果十分超出现实区域,如果超过,则e.complete(); 结束该触摸事件

 e.CumulativeManipulation 获取累计的操作更改,类似于历史记录

 e.ManipulationContainer  获取定义操作坐标的容器,和sender as [元素类] 比如上列代码的容器是Image

 

如果鼠标进行模拟,做水平向右移动,则效果是:

 

源码 :files.cnblogs.com/shenzhoulong/ManipulationDelta.rar

时间: 2024-10-03 23:39:24

windows phone (17) ManipulationDelta事件的相关文章

侦听Windows文件夹变更事件

通过以下两个类,可以实现对windows文件夹的事件侦听,包括新建文件,删除文件,文件重命名等事件: FileSystemWather.cs using System; using System.Collections; using System.IO; using System.Threading; namespace Whir.Software.FileCopy { public delegate void Completed(string key); public class FileSy

APT案例分析:一个基于Meterpreter和Windows代理的攻击事件

本文讲的是APT案例分析:一个基于Meterpreter和Windows代理的攻击事件, 前言 几个月前,在只可以通过代理进行访问的公司windows网络中,我对其进行了我开发的模拟定制的APT攻击.在测试过程中,我意外的发现我可以上传https返回类型的meterpreter后门.一开始,我并不确定这个地方存在漏洞,或者这个地方对APT攻击是否起作用.为了验证这个地方是否存在漏洞,我现在需要处理好代理环境. 在对环境做了深入分析之后,我们使用的meterpreter模块(windows/met

有关于c语言windows编程的按键事件的问题,求解答

问题描述 有关于c语言windows编程的按键事件的问题,求解答 刚开始学习windows编程,想要编写一个计算器,但是我不会实现点击数字就在文本框显示的功能,问了别人好像是有关按键事件的,求大家帮我解答. 解决方案 用setdlgitemtext可以设置文本,如果你完全没有基础,建议先找一个完整的代码,google下计算器的源代码有很多. 解决方案二: 建立按钮的点击事件,与按钮进行绑定,然后点击后将文字追加到文本框内

与众不同 windows phone (17) - Graphic and Animation(画图和动画)

原文:与众不同 windows phone (17) - Graphic and Animation(画图和动画) [索引页][源码下载] 与众不同 windows phone (17) - Graphic and Animation(画图和动画) 作者:webabcd 介绍与众不同 windows phone 7.5 (sdk 7.1) 之画图和动画 图形 画笔 转换 动画 缓动 示例1.图形(Shape)ShapeDemo.xaml <phone:PhoneApplicationPage x

windows phone的回退事件与android的回退事件有什么区别

public void onBackPressed() { finish(); } 如果要做一个页面导航的功能的话,就我而言,认为,windows phone开发比android更加人性化,更 加傻瓜化能够后退键保存相应的数据啊. 不是吗,windows phone 导航更加傻瓜,因为微软的api中直接有一个goback的方法,能够使你回到 相应的后退界面,因为他航到 Back 堆栈中的最新条目. 如果 Back 堆栈中没有任何条目,则此方法将 引发异常:在调用此方法前,始终都要检查 CanGo

比较windows phone 的回退事件与android的回退事件

public void onBackPressed() { finish(); } 如果要做一个页面导航的功能的话,就我而言,认为,windows phone开发比android更加人性化,更加傻瓜化能够后退键保存相应的数据啊. 不是吗,windows phone 导航更加傻瓜,因为微软的api中直接有一个goback的方法,能够使你回到相应的后退界面,因为他航到 Back 堆栈中的最新条目. 如果 Back 堆栈中没有任何条目,则此方法将引发异常:在调用此方法前,始终都要检查 CanGoFor

windows 2003 关闭“关闭事件跟踪程序”图解

关闭事件跟踪程序"是Windows Server等服务器系列不可缺少的东西.但是部分用户暂时不需要它,每次在关机时弹出显得比较繁琐,如何关闭它呢? 一.运行命令进入组策略编辑器   在开始菜单,单击运行(或按快捷组合键Ctrl+R),输入"gpedit.msc",打开"组策略编辑器"   二.修改相应策略   在左侧"本地计算机"策略,点击"计算机配置",然后点击"管理模版",再单击"系

与众不同windows phone (17) Graphic and Animation(画图和动画)

介绍 与众不同 windows phone 7.5 (sdk 7.1) 之画图和动画 图形 画笔 转换 动画 缓动 示例 1.图形(Shape) ShapeDemo.xaml <phone:PhoneApplicationPage x:Class="Demo.GraphicAndAnimation.ShapeDemo" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns

windows form button 单机事件传递参数

问题描述 如图用这个方法参数不能是有参数的方法么... 解决方案 解决方案二:不是提示了错误的吗,这里只能输入方法名称,不能输入参数解决方案三:你这是调用事件啊?自己去写个方法试试解决方案四:看你这里,是想调用这个按钮的text属性?你直接用Buttonbtn1=senderasButton;获取这个触发事件的按钮,然后再使用他的text属性不就可以了?解决方案五:如果想调用事件,是newEventHandler(buton1_click)解决方案六:这个事件一般是不需要额外传参的,因为Even