如何在WinRT中实现UserControl

时间:2013-05-06 20:40:35

标签: c++ windows-runtime override winrt-xaml c++-cx

我创建了一个简单的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方法,以便基类接收事件。


请给我一个提示,谢谢。

编辑

重写是不必要的

1 个答案:

答案 0 :(得分:1)

您需要在控件上指定ManipulationMode,并且控件需要非空背景或填充,例如背景= “透明”。