触摸两个屏幕元素windows 10通用

时间:2017-02-15 13:39:52

标签: c# uwp windows-10-universal multi-touch gestures

我被要求创建一个功能,要求您同时按下触摸界面的两个独立区域(按钮)。我无法确定这是否可行(好的谷歌)

我认为你可以简单地拦截touchstart事件,如果设备支持多点触摸......并以这种方式挂钩,但我没有尝试过,我也不知道是否第二个touchstart会被解雇吗?

有没有人有这方面的经验?

1 个答案:

答案 0 :(得分:1)

可以同时使用触摸交互操作两个元素。但是,UWP中没有touchstart事件。相反,您可能需要使用Manipulation events。以下是一个简单的示例:

XAML:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Rectangle Name="BlueRectangle"
           Width="200" Height="200" Fill="Blue"
           ManipulationMode="All" HorizontalAlignment="Left" VerticalAlignment="Top" />
    <Rectangle Name="RedRectangle"
           Width="200" Height="200" Fill="Red"
           ManipulationMode="All" HorizontalAlignment="Right" VerticalAlignment="Bottom" />
</Grid>

代码Dehind:

public sealed partial class MainPage : Page
{
    private TranslateTransform dragBlueTranslation;
    private TranslateTransform dragRedTranslation;

    public MainPage()
    {
        this.InitializeComponent();

        dragBlueTranslation = new TranslateTransform();

        BlueRectangle.RenderTransform = this.dragBlueTranslation;

        BlueRectangle.ManipulationDelta += (s, e) =>
        {
            dragBlueTranslation.X += e.Delta.Translation.X;
            dragBlueTranslation.Y += e.Delta.Translation.Y;
        };

        dragRedTranslation = new TranslateTransform();

        RedRectangle.RenderTransform = this.dragRedTranslation;

        RedRectangle.ManipulationDelta += (s, e) =>
        {
            dragRedTranslation.X += e.Delta.Translation.X;
            dragRedTranslation.Y += e.Delta.Translation.Y;
        };
    }
}

如果您只需要检测印刷机,可以尝试使用Tapped event。有关详细信息,请参阅Touch interactions