私はBlackJackプログラムを構築していますが、現在は手元のディスプレイで作業しています。WPFのItemsControlを設定して、各要素を一意の場所に表示するにはどうすればよいですか?
私はPlayerSeat UserControlにカードの表示用のItemsControlを持っています。ブラックジャックの通常のゲームと同様に、カード(私の場合の画像)はお互いの上に置かれます。異なるゲームアクション(スプリット、ダブルダウンなど)は、画面上のカードのレイアウトを変更する必要があります。 ItemsControlのItemSourceプロパティは、PlayerのViewModelの "ObservableCollection<Card> Hand
"プロパティです。カードオブジェクトには、カードイメージ付きのビットマップソースが含まれています。
私はいくつかのWebページ(投稿の終わりを参照)を見て、私が欲しいものを達成する方法を探しました。私は2つのオプションのうちの1つを行う方法を探しています。
(好ましい)各「ハンドモード」(スプリット、ダブルダウンなど)のレイアウトを指定してハンド(
OC<Card>
)の各インデックスが順に配置されるべき場所を指定。例えば、Handの最初のカードで、Sourceが(X1、Y1)にHand [0] .CardImageにバインドされたImageコントロールを置いた後、Hand [1] Imageを(X2、Y2)に置くなど。これは、ItemsControlの(ハンドモード間で変更するための)何らかのバインドされたテンプレートプロパティを設定することによって、最適に調整可能です。(フォールバック)すべてのImageコントロールを、ソースプロパティがバインドされた状態で表示します。これらのイメージのTop/LeftプロパティをHand [0] .Top/Leftにバインドし、Handクラスの配置caculationを行います。
私は自分自身で問題を調査することなく尋ねる人ではありません。私はStackPanelでItemsPanelTemplateを使用する必要がありますが、どこから始めたらいいか分かりません。キーは画像を重複させて、私が望むところに置くことです。あなたが私の問題で流すことができる光があれば助けになります。
参考: http://drwpf.com/blog/itemscontrol-a-to-z/(具体的に "ItemsControlに 'P' のパネルのためである")