2009-10-05 78 views
1

我正在爲Microsoft Surface開發一個應用程序,並且Im試圖最大限度地利用那些庫,功能Im如果能夠輕彈UI元素。WPF沿路徑滑動(Surface)

ScatterView控件使得這很簡單,但我想限制UI元素只能沿着設置路徑輕彈。這是我遇到麻煩的地方。

所以我的問題是:

1)你可以限制爲只可沿路徑輕彈一個ScatterViewItem? 2)如果不是,您將如何實現輕彈手勢以沿着設定路徑輕彈UI元素?

謝謝!

馬克

回答

3

1)不,我知道的,這可能不是接近它的最佳方式。

2)假設你有想要彈開的對象和設計時的路徑,我以前通過創建一個時間軸動畫來實現沿着路徑拖動和滑動,該動畫表示整個路徑上的移動。在運行時,我捕獲該對象上的聯繫人,將它們提供給Affine2DManipulationProcessor,並根據操作事件查找動畫。

所以在我的情況下,我創建了一個抽屜。當用戶觸摸抽屜時,我開始動畫並立即暫停。如果用戶將其拖動打開,我會根據操作處理器告訴我他們移動的距離向前尋找適當的動畫數量。

要獲得輕彈行爲,您只需將處理轉交給Affine2DInertiaProcessor並繼續處理增量事件。

這一切工作出人意料地很好。

+0

感謝本,這是一個很好的答案,我想只要你計算正確,動畫類就可以正常工作。因爲它可以給使用者帶來不自然的感覺,所以我沒有使用它。 – Mark 2009-10-05 21:34:16