首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用cppwinrt为OnPointerEntered声明处理程序?

如何使用cppwinrt为OnPointerEntered声明处理程序?
EN

Stack Overflow用户
提问于 2017-12-21 19:44:18
回答 1查看 380关注 0票数 0

在cppwinrt (xaml尚未可用)中,我有一个处理程序来处理Button的PointerEntered事件,它工作得很好。但是,在试图删除这个按钮的默认悬停行为(它以图像的形式显示)时,我似乎需要处理OnPointerEntered事件--我已经看到了涉及使用xaml触发器的解决方案,这似乎是一个代码等效的解决方案。但是OnPointerEntered有一个不同的参数列表,我无法找到一种方法来调用它。下面是如何成功地声明PointerEntered事件句柄:

代码语言:javascript
复制
button.PointerEntered([&](winrt::Windows::Foundation::IInspectable const & sender, Windows::UI::Xaml::RoutedEventArgs const & args) { EnteredButton(); });

它构建并正确调用EnteredButton。但

代码语言:javascript
复制
button.OnPointerEntered([&](winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const & e)
{
    EnteredButton();
});

不会构建-我是不正确地声明它,但不确定如何,在尝试了许多变体。(使用完全限定的名称可能没有必要,但在这两种情况下似乎都没有伤害)。OnPointerEntered可以在cppwinrt中使用吗?如果是的话,它将如何声明?我尝试过使用IPointerRoutedEventArgs而不是PointerRoutedEventArgs,但没有效果。或者-如果有人知道在用cppwinrt创建的按钮中禁用悬停效果的方法不同,那就可以了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-18 02:37:17

你不能按你的要求去做。回应国际监察局的评论:

  • PointerEntered是Windows::UI::Xaml::UIElement上的一个事件。您的代码正确地声明了它的处理程序。
  • OnPointerEntered是而不是事件,因此没有办法处理它。它是一种可重写的方法,您可以为其提供自己的实现。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47931777

复制
相关文章

相似问题

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