Я создаю программу для блэкджека и в настоящее время работаю над отображением рук.
У меня есть PlayerSeat UserControl, внутри которого есть ItemsControl для отображения карточек. Как и в обычной игре в блэкджек, карты (в моем случае изображения) накладываются друг на друга. Различные игровые действия (Split, Double Down и т.д.) должны менять расположение карт на экране. Свойство ItemSource элемента управления ItemsControl является свойством "ObservableCollection<Card> Hand
" в ViewModel моего проигрывателя. Объекты Card содержат BitmapSources с изображениями Card.
Я просмотрел несколько веб-страниц (см. конец поста) в поисках способов добиться того, чего я хочу. Я ищу способ сделать один из двух вариантов.
(Предпочтительно) Укажите макет для каждого «режим руки» (Разделить, Удвоить и т. д.) и указать, где каждый индекс руки (
OC<Card>
) должен быть размещен по порядку. Например, для первой карты в раздаче поместите элемент управления Image с привязкой Source к Hand[0].CardImage в (X1, Y1), затем поместите Hand[1] Image в (X2, Y2) и так далее. Это было бы оптимально настроить, установив какое-то связанное свойство шаблона (для переключения между режимами руки) в ItemsControl.(Запасной вариант) Отображение всех элементов управления Image с привязкой к их исходным свойствам. Привяжите свойства Top/Left этих изображений к Hand[0].Top/Left и выполните вычисления размещения в классе Hand.
Я не из тех, кто спрашивает, не изучив вопрос сам. Похоже, мне нужно использовать ItemsPanelTemplate со StackPanel, но я понятия не имею, с чего начать. Ключ в том, чтобы изображения перекрывались и размещались там, где я хочу. Любой свет, который вы могли бы пролить на мою проблему, был бы полезен.
Ссылка: http://drwpf.com/blog/itemscontrol-a-to-z/ (в частности, "ItemsControl: "P" для панели")