2011-12-09 15 views
4

私は、サイクロタッチスクリーンオーバーレイを使用しています。マウスのドラッグアンドドロップと同じように動作するように、リストボックスアイテムにドラッグアンドドロップモーション(すなわち指を下に動かして移動)指を保持して移動する)。私はこれについて助けが切望されている - 私はどのようにwpfリストボックスのタッチスクリーンにスクロールレスポンスを実装する方法について説明する多くの記事を見ることができます(アイテムは上下にスクロールされたが、指は)ですが、これは私が望むものの反対です。マルチタッチスクリーンとWPFリストボックス

私はしばらくこのことに固執しており、周りの道を知りません。

どうもありがとう、

ダン

+0

Telerik DragDrop Manager(http://www.telerik.com/products/wpf/drag-drop.aspx)を使用していますか? – Dennis

答えて

2

私はあなたが表面SDKを使用していると仮定。 (そうでない場合は、なぜですか?) これは素晴らしいリソースです:http://msdn.microsoft.com/en-us/library/ff727837.aspx

編集:私はあなたがタッチオーバーレイを使用するのを見ました。これらはWindows 7のタッチイベントを誘発しませんが、単にマウスをシミュレートするだけですか?もしそうなら、私はちょっと好奇心が強いのですが、これで通常のマウスと同じようにドラッグアンドドロップすることはできません。

EDIT2:

だから、あなたが何をする必要があるかのDataTemplateで2人のリスナーを追加することです。 PreviewTouchDownおよびPreviewTouchMove。

これは私がマウスでドラッグ操作を開始するために使用するものですが、いくつかの変更を加えてタッチでも機能するはずです。

private void TreePreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
{ 
    _startPoint = e.GetPosition(null); 
    _checkDragDrop = true; 
} 
private void TempTreeMouseMove(object sender, MouseEventArgs e) 
{ 
    if (e.LeftButton == MouseButtonState.Pressed) 
    { 
     var mousePos = e.GetPosition(null); 
     var diff = _startPoint - mousePos; 
     if (_checkDragDrop) 
     { 
      if (Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance || Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance) 
      { 
       _checkDragDrop = false; 
       . 
       . 
       . 
       DragDropEffects val = DragDrop.DoDragDrop(DragSourceList, dragData, DragDropEffects.Move); 

      } 
     } 
    } 
} 

おそらくこれでTelerikクラスを使用することはできません。

+0

こんにちは、あなたの応答のおかげで - 手がかりを持っている唯一の人のようです。そうですね、昨日のように私は表面SDKに切り替えました。しかし、これはドラッグ・アンド・ドロップ・ビヘイビア・クラス全体を一から書き直して、私が持っているレーダー・スケジューリング・ビューと相互作用できることを意味します。そしてそれは非常に扱いにくいです。私の好みは、このリストボックス上で動作するタッチドラッグ&ドロップ機能を得ることです。 私は現在、トリガータッチイベントを使用しているマルチタッチオーバーレイはありません。マウスをそのままシミュレートしません。 –

+1

これは可能です。タッチオーバーレイがタッチイベントを生成するかどうか、またはそれが厳密にマウスポインタイベントであるかどうかを知っていますか? – AkselK

+0

タッチイベントです。現時点では、私のコードはこの記事に記載されているコードと非常によく似ています。http://www.telerik.com/help/wpf/dragdropmanager_-howto-drag-between-radscheduleview-and-listbox.html 私のリストボックスに私は定義したドラッグドロップクラスを(上記の記事では同じですが)リストボックスに触れても、このクラスの必要なイベントは発生しません(マウスのような)が、代わりにイベントを発生させます:private void listBox1_TouchDownオブジェクトの送信者、TouchEventArgs e) 返信いただきありがとうございます。本当にありがとうございます。 –

関連する問題