我正在构建一个 BlackJack 程序,目前正在研究手显示器。
我有一个 PlayerSeat UserControl,其中有一个 ItemsControl 用于显示卡片。与普通的二十一点游戏一样,这些牌(在我的例子中是图像)是相互叠放的。不同的游戏动作(Split、Double Down 等)必须改变卡牌在屏幕上的布局。ItemsControl 的 ItemSource 属性是ObservableCollection<Card> Hand
我的 Player 的 ViewModel 中的一个“”属性。卡片对象包含带有卡片图像的 BitmapSources。
我浏览了几个网页(见帖子末尾),寻找实现我想要的方法。我正在寻找一种方法来做两个选项之一。
(优选)为每个“手模式”(Split、Double Down 等)指定布局,并指定 Hand (
OC<Card>
) 的每个索引应按顺序放置的位置。例如,对于 Hand 中的第一张卡片,将 Source 绑定到 Hand[0].CardImage 的 Image 控件放在 (X1, Y1) 处,然后将 Hand[1] Image 放在 (X2, Y2) 处,依此类推。这可以通过在 ItemsControl 上设置某种绑定模板属性(以在手部模式之间进行更改)进行最佳调整。(后备)显示绑定了 Source 属性的所有 Image 控件。将这些图像的 Top/Left 属性绑定到 Hand[0].Top/Left 并在 Hand 类中进行放置计算。
我不是一个不亲自调查这个问题就问的人。看来我需要将 ItemsPanelTemplate 与 StackPanel 一起使用,但不知道从哪里开始。关键是使图像重叠并放置在我想要的位置。您对我的问题的任何了解都会有所帮助。
参考: http ://drwpf.com/blog/itemscontrol-a-to-z/ (特别是“ItemsControl:'P'是面板”)