我目前正在实现一个自定义滑块控件。该控制既可以使用定点设备也可以使用触摸输入设备进行操作。
为了提供一致且熟悉的用户体验,控件使用了Windows 7中包含的Inertia API提供的简单物理模型。我已经设置了一个IManipulationProcessor
和一个IInertiaProcessor
连接到我的_IManipulationEvents
实现。事件路由已就位,操作处理完成后,将调用惯性处理器,执行轨迹计算。
到目前为止,还不错。但是,我无法理解如何将捕捉点合并到该设置中。通过捕捉点我指的是行为,滑块应该只允许降落在预定义的点,而不是在两者之间。IManipulationProcessor
和IInertiaProcessor
似乎都没有直接的支持。将这种行为附加到惯性处理的末端是可能的,但将无法为典型的视觉反馈提供运动信息。
那么,在哪里以及如何实现捕捉点呢?
最佳答案
你需要给捕捉点分配一个上下阈值,如果轨迹将在捕捉点范围内着陆,则用捕捉点位置替换投影的停止点…小心专利申请12/983106
作为美国出版物2012/0174005出版。你可能会发现自己有专利侵权的问题。
关于c - 如何使用启用惯性的控件实现捕捉点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17920172/