如何在WinRT中实现UserControl

How to implement UserControl in WinRT

本文关键字:实现 UserControl WinRT      更新时间:2023-10-16

我创建了一个简单的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,但是当我想在控件上滑动时,根本没有发生任何事情(我调试了)。

我读了关于overridingOnManipulationDelta -方法从Windows::UI::Xaml::Controls::Control,但我在这里我卡住了:

protected:
void OnManipulationDelta
(Windows::UI::Xaml::Input::ManipulationDeltaRoutedEventArgs^ e) override {
}   

虽然几乎没有关系,但对于C++CLI,它在MSDN上表示:

OnManipulationDelta方法没有默认实现。在派生类中重写OnManipulationDelta以处理ManipulationDelta事件。一定要调用基类的OnManipulationDelta方法,这样基类才能接收到事件。


请给我一个提示,谢谢。

编辑

不需要重写

您需要在控件上指定ManipulationMode,并且控件需要一个非空的Background或Fill,例如Background="Transparent"