【问题标题】:How to implement a two-finger PanGesture instance in Xamarin.Forms如何在 Xamarin.Forms 中实现两指 PanGesture 实例
【发布时间】:2019-08-28 21:26:49
【问题描述】:

我正在尝试在 Xamarin.Forms 中为 PanGestureRecognizer 实例实现多点触控场景,但不知道最佳方法。

我对 Xamarin 生态系统和整个 C# 非常陌生,所以虽然我已经成功实现了一个手指的 PanGestureRecognizer 实例,这是默认设置,但我不确定去哪里查看只能平移的视图当两个手指同时拖动时。

我只是想获得一个仅在用两根手指拖动时才能在屏幕上平移的视图。我不能使用任何第 3 方许可。

【问题讨论】:

  • 您能否将一些代码添加到您的问题中,以便我们查看您的尝试?

标签: c# .net xamarin.forms


【解决方案1】:

要使用平移手势使用户界面元素可移动,请创建一个PanGestureRecognizer 实例,处理 PanUpdated 事件,并将新的手势识别器添加到用户界面元素的 GestureRecognizers 集合中。以下代码示例显示了附加到 Image 元素的 PanGestureRecognizer:

var panGesture = new PanGestureRecognizer();
panGesture.TouchPoints = 2; //Set finger to 2 
panGesture.PanUpdated += (s, e) => {
  // Handle the pan
};
image.GestureRecognizers.Add(panGesture);

这也可以在XAML中实现,如下代码示例所示:

<Image Source="MonoMonkey.jpg">
  <Image.GestureRecognizers>
    <PanGestureRecognizer PanUpdated="OnPanUpdated" TouchPoints="2"/>
  </Image.GestureRecognizers>
</Image>

然后将OnPanUpdated 事件处理程序的代码添加到代码隐藏文件中:

void OnPanUpdated (object sender, PanUpdatedEventArgs e)
{
  // Handle the pan
}

【讨论】:

    【解决方案2】:

    您可以设置 PanGestureRecognizer 的 TouchPoints 属性。

    查看链接:- https://docs.microsoft.com/en-us/dotnet/api/xamarin.forms.pangesturerecognizer.touchpoints?view=xamarin-forms#Xamarin_Forms_PanGestureRecognizer_TouchPoints

    代码:-

    PanGestureRecognizer pgr = new PanGestureRecognizer();
    pgr.TouchPoints = 2;
    

    同样可以在 Xaml 中设置。

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 2015-11-22
    • 2018-12-27
    相关资源
    最近更新 更多