Xamarin 平移手势识别器未给出准确的坐标

Art*_*510 2 xamarin xamarin.forms

我正在使用平移手势识别器进行一些测试。设置非常简单,我有一个 20x20 的框视图,并由相对布局设置。平移手势的处理程序

switch (args.StatusType)
            {
                case GestureStatus.Running:
                    box.TranslationX = box.X + args.TotalX;
                    box.TranslationY = box.Y + args.TotalY;
                    break;
                case GestureStatus.Completed:
                    box.TranslationX = 0;
                    box.TranslationY = 0;
                    break;
            }
Run Code Online (Sandbox Code Playgroud)

所以它运行正常,但是当我尝试在屏幕上拖动框视图时,它无法正确转换值。当它尝试重绘盒子时,它还会产生非常令人讨厌的闪烁效果。有更好的方法来做这件事吗?有没有办法摆脱闪烁?

Jul*_*ent 5

好吧,如果你的盒子有 PanGestureRecognizer,那么闪烁效果只是因为 TotalX 和 TotalY 是相对于盒子平移坐标的。

尝试改变

box.TranslationX = box.X + args.TotalX;
box.TranslationY = box.Y + args.TotalY;
Run Code Online (Sandbox Code Playgroud)

经过

box.TranslationX = box.TranslationX + args.TotalX;
box.TranslationY = box.TranslationY + args.TotalY;
Run Code Online (Sandbox Code Playgroud)

它应该有效。

编辑:它仅涉及 Xamarin Android,它对于 UWP 的工作方式有所不同。