【问题标题】:How to implement UserControl in WinRT如何在 WinRT 中实现 UserControl
【发布时间】:2013-05-07 15:36:47
【问题描述】:

我创建了一个简单的UserControl,仅由一个Grid 和一个包含的Image 组成。

现在我想应用“ManipulationDeltaEvent”等事件来进行触控。当我分配像

这样的事件处理程序时
pic->ActionToken = pic->ManipulationDelta +=
ref new ManipulationDeltaEventHandler(this, &MainPage::SwipeImageEventHandler);

pic->CompletedToken = pic->ManipulationCompleted +=
ref new ManipulationCompletedEventHandler(this, &MainPage::ImageManipulationCompletedEventHandler);

我收到有效的EventRegistrationTokens,但是当我想在控件上滑动时,什么也没有发生(我已调试)。

我从Windows::UI::Xaml::Controls::Control 读到了overriding OnManipulationDelta-方法,但我在这里卡住了:

protected:

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

}   

虽然只是几乎没有关系,但对于C++\CLI,它在MSDN 上声明:

OnManipulationDelta 方法没有默认实现。在派生类中重写 OnManipulationDelta 以处理 ManipulationDelta 事件。请务必调用基类的 OnManipulationDelta 方法,以便基类接收事件。


请指教,谢谢。

编辑

重写是不必要的

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 非常感谢。我不应该在深夜做这种事。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多