2

LibraryContainer以前は、オブジェクトを からへ、ScatterViewまたはその逆にドラッグ アンド ドロップしようとしLibraryContainerましLibraryStackLibraryBarDragDropScatterView.csこれを、Surface 2.0 SDK で提供されている ShoppingCart の例と組み合わせると、非常に簡単です。

UserControlここで、a をScatterView4 に、またはその逆にドラッグ アンド ドロップできるようにしたいと考えています

私が調査したことから、それを行う方法があり、ここで見つけることができます: http://msdn.microsoft.com/en-us/library/ff727736.aspx。ただし、ここでは を使用せずDragDropScatterView.cs、別の方法で行われます。と の 2 つObservableCollections(ソースとターゲット) がScatterViewItemsありSurfaceListBoxます。

この例で気に入らない点の 1 つはScatterViewItems、ユーザーが をクリックするScatterViewItemと視覚スタイルが作成されて が非表示にScatterViewItemなり、ドロップすると が更新されるため、ドラッグ可能な には実際にはスケール プロパティがないことです。その座標と向きを調整し、ScatterViewItem可視化します。ScatterViewItem私は普通の振る舞いをしたいので、この道を行かないことにしました。

私がやりたい基本的なことは、たとえば aLabelと a を横に持ち、ScatterViewそれをドラッグしてLabel(ビジュアルカーソルの作成 - 既に完了)、 にドロップして、 と同じプロパティを持つa をScatterView作成することです。ScatterViewItemオリジナルLabel。私はでこれをやってみましたが、私が(上で)DragDropScatterView.csを使用している場合は(上で)もあるために起こると思いますが、これは私が持っている場合ではありません。LabeldroppingCursor.DataDragDropScatterView.csnulldraggedElement.DataContextLabelView.xaml.csnullnullSurfaceListBox

ここでコード サンプルを提供します: http://sdrv.ms/VDuHq5。にSurfaceWindow1.xamlTagVisualizationと のコンテナがありScatterViewLabelView.xamlは の中で呼び出されます`TagVisualization

誰かがこれについて私を助けることができれば、私は本当に感謝しています.

4

1 に答える 1

1

私は自分の問題を解決することができました.

私はこれを検索して見つけまし。次に、これSurfaceListBoxをこれらのドラッグ アンド ドロップ イベントで使用し、それをDragDropScatterViewクラスと組み合わせて、新しいオブジェクトが作成されるたびに、カスタム オブジェクトをScatterViewItem通常どおりに制御できるようにしました。ScatterViewこの方法では、ビジュアル カーソル、つまり から項目をドラッグしたときに表示されるものも作成する必要がありますSurfaceListBox

私を困惑させ、Serge Calderara (MSDN Surface フォーラムから) が私を助けてくれたのは、これらのドラッグ アンド ドロップ イベントをLabelたとえば、またはUserControl偶数に関連付けようとしていたのですが、間違ったものを見ていたことです。仕方。ほとんどの場合、最適な解決策はコンテナーを用意することです。そのコンテナーに目的のオブジェクトを配置しUserControls、ドラッグ アンド ドロップ イベントを個々のアイテムではなく、そのコンテナーにのみ関連付けます。それを念頭に置いて、物事をまとめるのはかなり簡単でした。私は(私のコンテナである)を作成してUserControls入力し、 (コンテナからアイテムを受け取る)に同じセレクタを使用しました。私のオブジェクトクラスでは、変数を定義して、どのタイプのSurfaceListBoxItemTemplateSelectorScatterViewUserControlそれに応じて持って帰りますDataTemplate

これで、SurfaceListBoxドラッグ アンド ドロップしてScatterView元に戻すことができる 2 つのカスタム UserControls を作成しました。MVVM パターンを使用した実際のサンプルは、http ://sdrv.ms/10SjKaH にあります。

それが他の人を助けることができることを願っています、そしてそれは私を助けました. ご質問やご提案がございましたら、お気軽にお問い合わせください。

于 2012-11-27T11:54:23.633 に答える