#753 – ManipulationDelta中Scale和Expansion属性的区别(Scale vs. Expansion in ManipulationDelta Events)

翻译 2017年07月18日 17:38:42

原文地址:https://wpf.2000things.com/2013/02/11/753-scale-vs-expansion-in-manipulationdelta-events/

在触摸操作的ManipulationDelta 事件中,我们常常关心缩放的程度。通过事件参数的ManipulationDelta.Scale  属性可以判断出当前缩放大小相对于上一次的倍数。

同样的,我们还可以通过ManipulationDelta.Expansion属性来确认缩放的程度。和ManipulationDelta.Scale  属性不同的是,ManipulationDelta.Expansion属性表示的是相比于上一次控件大小变化的具体大小(以设备无关像素为单位(1/96 in))。

下面的例子中,打印每次缩放ManipulationDelta.ScaleManipulationDelta.Scale的值:

private Vector totalScale = new Vector(1.0, 1.0);
private Vector totalExpansion = new Vector(0.0, 0.0);
 
private void Image_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
    ManipulationDelta md = e.DeltaManipulation;
 
    totalScale.X *= md.Scale.X;
    totalScale.Y *= md.Scale.Y;
 
    totalExpansion.X += md.Expansion.X;
    totalExpansion.Y += md.Expansion.Y;
 
    Console.WriteLine(string.Format(
        "Scale: {0},{1}.  Expansion: {2},{3}",
        md.Scale.X, md.Scale.Y, md.Expansion.X, md.Expansion.Y));
    Console.WriteLine(string.Format(
        "  Total Scale: {0},{1}.  Total Expansion: {2},{3}",
        totalScale.X, totalScale.Y, totalExpansion.X, totalExpansion.Y));
}

运行结果截图:

753-001

可以看出Scale表示的是倍数信息,Expansion表示实际大小的变化。

图割之 Alpha-expansion

最近看了Fast Approximate Energy Minimization via Graph Cuts这篇论文。主要介绍了两种局部优化的方法: Alpha-expansion and Alph...
  • shi923281339
  • shi923281339
  • 2016年12月06日 22:20
  • 899

程序中出现unexpected end of file in macro expansion

这是在宏扩展的文件意外结束的意思,说的是你用宏时没有收尾: 例如 #define max(a,b) a>b?a:b 假如你用宏的时候你缺了右括号   如 max(3,5;  编译器就会报这种错,...
  • xexiyong
  • xexiyong
  • 2013年07月06日 10:02
  • 5559

Unity中Scale详解

1.缩放变换Scale代表的是缩放。 通常意义下的缩放变换,指的是利用缩放矩阵和物体的齐次坐标相乘而进行变换,缩放矩阵形如: Scalex代表x轴方向的缩放 Scaley代表y轴方向的缩放 S...
  • a380331382
  • a380331382
  • 2018年01月06日 23:55
  • 120

WP7 ——触控操作Manipulation

在上篇文章中介绍了底层的触控编程接口,本文将讲解Silverlight for Windows Phone中的高级触控编程接口,与之相关的是定义在UIElement中的 Manipulation...
  • zhangjunjian127
  • zhangjunjian127
  • 2012年02月22日 11:03
  • 3850

Pyhton 中的Scale 和Normalization(正则化)

谈一下Python中sklearn.preprocessing中与数据预处理相关的函数 一、Scale包括两部分:Standardization(标准化)和Centering(归一化)       1...
  • liluo9527
  • liluo9527
  • 2016年03月31日 17:34
  • 2646

Linux Kernel 学习笔记2:模块参数

在用户态下编程可以通过main()来传递命令行参数,而编写一个内核模块则可通过宏module_param()来传递命令行参数. 先来看看这个宏的定义(Linux-4.4.0-37) #define m...
  • stone8761
  • stone8761
  • 2017年04月13日 14:58
  • 823

T60 开机提示 ERROR Expansion ROM not initialized - PCI on Motherboard 的解决方法

ERROR Expansion ROM not initialized - PCI on Motherboard 的解决方法 ...
  • luotuo203
  • luotuo203
  • 2007年06月29日 11:41
  • 8868

Scale Up和Scale Out的区别

Scale Out是指Application可以在水平方向上扩展。一般对数据中心的应用而言,Scale out指的是应用...
  • Hipercomer
  • Hipercomer
  • 2014年08月04日 21:05
  • 5886

BigDecimal类数据的处理和"Non-terminating decimal expansion; no exact representable decimal result"问题

由于需要处理精度比较高的浮点数,所以弃用double类型,改用BigDecimal类来进行数值处理。 在加减乘时都没有出现问题,但是到除法运算时,提示了如下错误: (Non-terminati...
  • wplove1029
  • wplove1029
  • 2013年10月19日 15:04
  • 6318

Hibernate 配置文件precision与scale的说法

Oracle使用标准、可变长度的内部格式来存储数字。这个内部格式精度可以高达38位。      NUMBER数据类型可以有两个限定符,如:      column NUMBER ( pre...
  • z69183787
  • z69183787
  • 2014年02月19日 16:03
  • 1380
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:#753 – ManipulationDelta中Scale和Expansion属性的区别(Scale vs. Expansion in ManipulationDelta Events)
举报原因:
原因补充:

(最多只允许输入30个字)