私はブラックジャック プログラムを構築しており、現在ハンド ディスプレイに取り組んでいます。
カードを表示するために、内部に ItemsControl を持つ PlayerSeat UserControl があります。ブラックジャックの通常のゲームと同様に、カード (私の場合は画像) が互いに重ねられます。さまざまなゲーム アクション (スプリット、ダブル ダウンなど) では、画面上のカードのレイアウトを変更する必要があります。ItemsControl の ItemSource プロパティはObservableCollection<Card> Hand
、プレーヤーの ViewModel の " " プロパティです。Card オブジェクトには、Card イメージを含む BitmapSources が含まれています。
私が望むものを達成する方法について、いくつかのWebページ(投稿の最後を参照)に目を通しました。2つのオプションのうちの1つを行う方法を探しています。
(推奨) 各「ハンド モード」(スプリット、ダブル ダウンなど) のレイアウトを指定し、ハンド (
OC<Card>
) の各インデックスを配置する場所を指定します。たとえば、ハンドの最初のカードの場合、ソースが Hand[0].CardImage にバインドされた Image コントロールを (X1, Y1) に配置し、次に Hand[1] Image を (X2, Y2) に配置します。これは、ItemsControl で何らかのバインドされたテンプレート プロパティ (ハンド モード間で変更するため) を設定することによって最適に調整できます。(フォールバック) Source プロパティがバインドされたすべての Image コントロールを表示します。これらの画像の Top/Left プロパティを Hand[0].Top/Left にバインドし、Hand クラスで配置計算を行います。
私は自分で問題を調査せずに質問する人ではありません。StackPanel で ItemsPanelTemplate を使用する必要があるようですが、どこから始めればよいかわかりません。重要なのは、画像を重ねて、必要な場所に配置することです。あなたが私の問題に当てることができる光は役に立ちます.
参照: http://drwpf.com/blog/itemscontrol-a-to-z/ (具体的には「ItemsControl: 'P' は Panel 用です」)