首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Click、XAML和PointerPressed在WinRT-XAML中是同义词吗?

Click、XAML和PointerPressed在WinRT-XAML中是同义词吗?
EN

Stack Overflow用户
提问于 2012-11-10 10:08:40
回答 4查看 18.1K关注 0票数 36

我是为PointerPressed,Click,还是the创建事件处理程序,这有什么关系吗?

代码语言:javascript
复制
<Button x:Name="BackButton" PointerPressed="BackButton_Click"/>    
<Button x:Name="BackButton" Click="BackButton_Click"/>    
<Button x:Name="BackButton" Tapped="BackButton_Click"/>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-21 20:21:40

Click是为了向后兼容,本质上和the是一样的。点击是一种“高级手势”,它会自动转换为点击、点击、按笔等操作,这也是我推荐使用的。

PointerPressed不是你想要的。原因如下:如果我按住不放,PointerPressed事件将在我最初“按”的时候触发,然后一旦完成就会触发一个PointerReleased。这是更低级的,你可以决定它被按了多长时间,等等。通常,长按不是你想要考虑的“点击”或“点击”,因为根据定义,点击是较短的持续时间。因此,对于你想要的东西,"Tap“是最好的传达方式,因为它使用系统计时为你翻译了被认为是"Tap”的手势与按住的手势,并自动将点击和笔压提升到同一事件。无论交互持续多长时间,只要按下按钮或手指,PointerPressed都会触发。

我有一个相当复杂的应用程序,它演示了你可以从http://windows8applications.codeplex.com下载的各种交互-只需参考名为“触摸”的第4章示例。

票数 57
EN

Stack Overflow用户

发布于 2014-04-01 14:33:12

Jeremy的回答并不完全准确。在another thread中,有人报告说,在快速连续点击/点击时,点击与点击的工作方式不同,这很容易通过以下代码重现,并且可以很容易地扩展到指针事件。

代码语言:javascript
复制
public sealed partial class MainPage : Page
{
    private int clicks = 0;
    private int taps = 0;
    public MainPage()
    {
        this.InitializeComponent();
        var button = new Button();
        button.Width = 500;
        button.Height = 200;
        button.Content = string.Format("Clicks: {0}, Taps: {1}", clicks, taps);
        button.Click += (s, e) => button.Content = string.Format("Clicks: {0}, Taps: {1}", ++clicks, taps);
        button.Tapped += (s, e) => button.Content = string.Format("Clicks: {0}, Taps: {1}", clicks, ++taps);
        this.Content = button;
    }
}

Click是您应该在常规按钮上处理的内容。它具有按钮所需的逻辑。我能想到的事情有

  • 它可以与键盘和鼠标一起工作
  • 即使你按下按钮然后慢慢释放它也能工作当你从按钮上拖走时它可以被取消,也可以在之前按下按钮
  • 后通过拖回到它来恢复它,所以如果你试图同时点击两个按钮-第一个触摸的按钮不会点击(不同于原来的表面/像素感应,它支持多用户interactions!)
  • it,可能与自动化之类的东西一起工作得更好,因此,使用multi
  • 的辅助功能时,它始终适用于

如示例代码所示-如果您重复点击,则Tapped事件不会为所有点击注册。我不确定这是不是因为一些潜在的手势识别逻辑看到了一些双击,或者只是出于其他原因拒绝了其他点击。它适用于快速的单次触摸/笔轻击或鼠标单击,但它是一个通用事件,您可以在任何UIElement上处理它,如果您想要区分轻击、双击、右键轻击(!)或者持有任意的UI元素。

指针事件是较低级别的,您可以使用它们来处理框架中尚未内置的稍微高级的交互。正如我所提到的-点击由按钮上的按下和伴随释放组成,所以类似的交互可以用指针事件来模拟。例如,你可以使用它来实现某种Whac-A-Mole/Twister组合类型的游戏,在这种游戏中,你想要同时混搭许多UI元素,这是你不能用点击来做的。

票数 27
EN

Stack Overflow用户

发布于 2017-01-04 01:26:12

您应该使用单击按钮(以及ListView、超链接、MenuFlyoutItem、ContentDialog等)。Tapped只是一个指针事件,所以如果你使用键盘、访问键或自动操作,它不会被调用。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13318569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档