我创建了一个简单的UserControl
,仅由Grid
和一个Image
组成。
现在我想应用诸如“ManipulationDeltaEvent”之类的事件来进行触控。当我分配像
这样的事件处理程序时pic->ActionToken = pic->ManipulationDelta +=
ref new ManipulationDeltaEventHandler(this, &MainPage::SwipeImageEventHandler);
pic->CompletedToken = pic->ManipulationCompleted +=
ref new ManipulationCompletedEventHandler(this, &MainPage::ImageManipulationCompletedEventHandler);
我收到有效的EventRegistrationToken
s,但是当我想滑动控件时,根本没有任何反应(我调试过)。
我从overriding
了解了OnManipulationDelta
Windows::UI::Xaml::Controls::Control
方法,但我在这里被卡住了:
protected:
void OnManipulationDelta
(Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs^ e) override {
}
虽然只有几乎没有关联,但C++\CLI
表示MSDN:
OnManipulationDelta
方法没有默认实现。覆盖派生类中的OnManipulationDelta以处理ManipulationDelta事件。请务必调用基类的OnManipulationDelta方法,以便基类接收事件。
请给我一个提示,谢谢。
编辑
重写是不必要的
答案 0 :(得分:1)
您需要在控件上指定ManipulationMode,并且控件需要非空背景或填充,例如背景= “透明”。