【问题标题】:touch two screen elements windows 10 universal触摸两个屏幕元素 windows 10 通用
【发布时间】:2017-02-15 13:39:51
【问题描述】:
我被要求创建一个功能,要求您同时按下触摸界面的两个独立区域(按钮)。我无法确定这是否可能(OK google)
我假设您可以简单地拦截 touchstart 事件,如果设备支持多点触控......并以这种方式挂钩,但我没有尝试过,我不知道第二个 touchstart会被解雇吗?
有人有这方面的经验吗?
【问题讨论】:
标签:
c#
uwp
windows-10-universal
multi-touch
gestures
【解决方案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>
代码隐藏:
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。