2016-11-12 60 views
1

私はScrollViewerの内部にキャンバスを持つWPFアプリケーションを持っています。キャンバスには、タイムラインに沿ってドラッグする長方形があります(左右)。これはマウスでうまく動作しますが、タッチスクリーンでは、キャンバスがメインフォームよりも広い場合、私は奇妙な動作をします。まず、矩形をドラッグし始めると、キャンバスがスクロールして制限に達するまで移動し、矩形が移動を開始します。私はマウスを使うときはこれをしません。WPFドラッグでタッチする矩形

もう1つ奇妙なのは、スクロールビューアの限界までキャンバス(タッチを使用して)をパン/ドラッグすると、メインフォームがパン方向の反対側の20-50ピクセルで圧縮されるということです。それはあなたがドラッグを止めるとすぐに形に戻ります。ここで何が起こっているのですか?これをどうすれば無効にできますか?

ManipulationBoundaryFeedbackに関係しているようですが、私は正確にどのように理解していない...

EDIT: は、だから私はPanningModeにScrollViewerのをpanningmodeを設定することで、さらに少しを取得することができました。長方形のTouchDownハンドラではなく、TouchUpハンドラのPanningMode.Bothに戻します。これにより、四角形が移動する前にキャンバスのパンを制限する問題が解決されました。

答えて

0

まあ、私は最終的にタッチで動作するように私のアプリを持っていた。上記のように、TouchDownイベントでPanningModeをNoneに設定すると、ScrollViewerの問題が解消されました。 TouchUpイベントで再びBothに設定すると、再び有効になりました。これは、ScrollViewerがパンニングを開始するポイントを越えて四角形をドラッグできないことを意味しますが、私の場合、これは問題ではありませんでした。

また、私はタッチダウン

-= new MouseButtonEventHandler(drag_start) 

とグリッチ行動を排除するTouchUpの中に戻ってそれを再追加中にそれを取り除くようTouchMoveイベント中に発火のMouseLeftButtonDownイベントにいくつかの問題がありました。

+= new MouseButtonEventHandler(drag_start) 

たぶんこれは...

将来的に誰かを助けます
関連する問題