В cppwinrt (xaml еще не доступен) у меня есть обработчик события PointerEntered для кнопки, и он отлично работает. Но при попытке удалить поведение при наведении курсора по умолчанию для этой кнопки, которая отображается как изображение, мне кажется, что вместо этого мне может потребоваться обработать событие OnPointerEntered - я видел решения, которые включают использование триггера xaml, и это, похоже, эквивалент кода . Но OnPointerEntered имеет другой список аргументов, и я не могу найти способ вызвать его, который будет построен. Вот как успешно объявляется дескриптор события PointerEntered:
button.PointerEntered([&](winrt::Windows::Foundation::IInspectable const & sender, Windows::UI::Xaml::RoutedEventArgs const & args) { EnteredButton(); });
Это строит и правильно вызывает EnteredButton. Но
button.OnPointerEntered([&](winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const & e)
{
EnteredButton();
});
не будет строить - я неверно декларирую, но не знаю как, попробовав несколько вариантов. (Использование полностью определенных имен, возможно, не обязательно, но, похоже, не повредит в любом случае). Можно ли использовать OnPointerEntered в cppwinrt и как его объявить в таком случае? Я попытался использовать IPointerRoutedEventArgs вместо PointerRoutedEventArgs, но безрезультатно. Или - если кто-нибудь знает другой способ отключить эффект наведения в кнопке, созданной с помощью cppwinrt, это сработает.
PointerEntered
позволяет вам настроить делегат, вызываемый при запуске события, тогда какOnPointerEntered
реализован вIControlOverridesT
, что настоятельно предполагает, что это член, который вы можете переопределить, и предоставить ваша собственная реализация. Я не знаю, но предполагаю, чтоOnPointerEntered
вызывается по умолчанию, если вы не настроили собственный делегат с помощьюPointerEntered
. - person IInspectable   schedule 22.12.2017