0

Controls.PreviewContactDown、PreviewContactUp、および PreviewContactChanged イベントを使用して、Surface に配置、削除、および移動されるタグ付きアイテムをキャプチャします。これは、Surface に付属する Simulator アプリケーションでうまく機能します。

実際のサーフェスでは、タグ付けされたアイテムをあまりにも速く動かした場合、カメラは実際にタグの焦点を失い、タグが取り外されたと想定し、動きが止まったときに再度キャプチャします。それは私たちのクライアントにとってかなり貧弱な経験を提供します.

私が提案しているのは、タグ付けされたアイテムイベントに応答する新しいイベントをオーバーライドまたは作成する方法ですが、遅延が発生するまでイベントハンドラーを起動しません...つまり、「ContactUp」が起動された場合、100ミリ秒待ってから実行しますイベントハンドラ。理想的には、別の添付プロパティを使用してこれらのイベント ハンドラーを定義できるようにするだけです。つまり、

<Panel local:TagDown="TagDownEventHandler" />  

また、イベント ハンドラーの代わりに ICommand オブジェクトを使用できるようにできれば、さらに優れたものになります。

4

2 に答える 2

2

TagVisualizer を使用するだけではどうですか? これは、ビジュアルが画面から削除される前にデフォルトのフェードアウト アニメーションを提供することで、タグの紛失/発見を既に処理しています。

接触が失われると、元の接触と新しい接触の間に接続がないため、同じことを指で行うのは困難です。

于 2010-02-14T03:08:44.693 に答える
1

実際の Surface と接触イベントでも同じことがわかりました。

私たちが行ったこと (これはニーズによって異なります) は、「連絡先コンテナー」の基本クラスを作成することです。これには、オブジェクト/タグを含む一連の eventArgs でタイマーを起動する ContactUp を処理する独自のメソッドがあります。削除され、リストに追加されます。タイマーが作動したら、オブジェクト/タグをコンテナとキュー リストから削除します。

contactDown が発生すると、一致するオブジェクトがキューにないことを確認します。一致するオブジェクトがある場合は、タイマーを停止してキューから削除し、新しいタグはまだコンテナーにあるため、無視します。そうでない場合は、配置されている新しいタグを処理します。

堅牢性を確保するためにコードを微調整しています。できたら、Codeplex にソリューションを投稿します。

HTH

于 2010-03-12T06:35:35.837 に答える