#748 – 获得按下时对应位置点的大小(Getting the Size of a Contact Point during Raw Touch)

翻译 2017年07月07日 16:32:39

原文地址:https://wpf.2000things.com/2013/02/04/748-getting-the-size-of-a-contact-point-during-raw-touch/

在低级别的触屏Touch 事件中,我们可以获得手指与屏幕接触的位置的面积大小。获得这个信息可以通过TouchPoint.Bounds 属性(请注意,即使驱动层不支持,该属性也有值,可能会有为0的大小)。

下面是一个例子,在触摸的位置根据接触的大小画一个椭圆。

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        TouchEllipses = new Dictionary<int, Ellipse>();
    }
 
    private Dictionary<int, Ellipse> TouchEllipses;
 
    private void Canvas_TouchDown(object sender, TouchEventArgs e)
    {
        canvMain.CaptureTouch(e.TouchDevice);
        TouchPoint tp = e.GetTouchPoint(canvMain);
 
        Ellipse el = new Ellipse();
        el.Stroke = Brushes.Black;
        el.Fill = Brushes.Black;
 
        el.Width = tp.Bounds.Width > 0 ? tp.Bounds.Width : 50;
        el.Height = tp.Bounds.Height > 0 ? tp.Bounds.Height : 50;
 
        Canvas.SetLeft(el, tp.Position.X - (el.Width / 2));
        Canvas.SetTop(el, tp.Position.Y - (el.Height / 2));
 
        canvMain.Children.Add(el);
        TouchEllipses.Add(e.TouchDevice.Id, el);
 
        e.Handled = true;
    }
 
    private void Canvas_TouchUp(object sender, TouchEventArgs e)
    {
        canvMain.Children.Remove(TouchEllipses[e.TouchDevice.Id]);
        TouchEllipses.Remove(e.TouchDevice.Id);
 
        e.Handled = true;
    }
}


关于iphone 上touch事件动态改变元素位置时与touch点发生偏移的问题

touchstart, touchmove, touchend 关于iphone 上touch事件动态改变元素位置时与touch点发生偏移的问题,iphone兼容,...
  • ling369523246
  • ling369523246
  • 2017年04月18日 14:52
  • 450

你不知道的Eclipse用法:插件的安装和卸载

Eclipse插件安装步骤  使用Eclipse Marketplace安装  在菜单栏中,Help->Eclipse Marketplace弹出对话框。    在搜索栏中,搜索相应...
  • p106786860
  • p106786860
  • 2013年06月25日 10:57
  • 4204

OpenCv学习笔记(三)---OpenCv中基本数据类型--Point,Size,Rect,Scalar,Vec3b类类型的详细解释及其OpenCv中源代码的详细分析

/********************************************************************************************* 程序功能:...
  • maweifei
  • maweifei
  • 2016年04月23日 17:23
  • 20408

iOS开发 - touchBegan事件判断点击的位置在View上还是在View的子View上

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event此方法用到的频率还是很高的,但是有一种情况,如下图: 同时有白色蓝色...
  • CodingFire
  • CodingFire
  • 2016年11月15日 10:29
  • 6437

OpenCV基本結構(Point、Size、Rect等)

OpenCV有定義一些基本結構,像Point、Point2f、Size、Size2f、Rect、RotatedRect、Scalar等,方便我們進行影像處理,這些結構通常都當參數輸入,或是函式內部計算...
  • Liuqz2009
  • Liuqz2009
  • 2017年03月07日 11:15
  • 2355

Android Zygote启动流程源码解析

本文已授权微信公众号《鸿洋》原创首发,转载请务必注明出处。 Zygote进程是Android和Java世界的开创者。在Android系统中,所有的应用进程和SystemServer进程都是由Zygot...
  • qq_17250009
  • qq_17250009
  • 2016年07月29日 08:57
  • 3665

Size数据结构 Point类

Size 类 用于表示尺寸的数据结构 Size(x,y) Point类  Rect类
  • chaihuimin
  • chaihuimin
  • 2017年08月05日 10:14
  • 77

Android问题之res/raw和assets的区别及文件大小限制

*res/raw和assets的相同点: 1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。 *res/raw和assets的不同点: 1.res/raw...
  • android_xiaozhou
  • android_xiaozhou
  • 2014年04月05日 21:27
  • 3658

raw contact子表数据查询

RAW_CONTACT子表的查询很有意思。RAW_CONTACT子表有很多。主要的有:android.provider.ContactsContract.CommonDataKinds.Structu...
  • dahailantian1
  • dahailantian1
  • 2017年11月20日 17:41
  • 19

Unity3D之获取BoxCollider八个点的世界坐标

我们想把场景中的BoxCollider的坐标点导出出来让服务器也能用。虽然BoxCollider自身的大小可以获取出来,但是如果有父对象,并且有坐标的变化那算起来就比较麻烦了。还好unity提供了一个...
  • juan_bo
  • juan_bo
  • 2016年08月23日 14:53
  • 1359
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:#748 – 获得按下时对应位置点的大小(Getting the Size of a Contact Point during Raw Touch)
举报原因:
原因补充:

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