作为我的第一个WPF项目,我正在尝试构建一个应用程序来玩类似于Magic the Gathering的纸牌游戏.我不清楚如何布置主要游乐区.您可以通过查看示例1或示例2看到一些类似于我尝试的示例.右侧的聊天/信息区域将是单独的用户控件.
卡片必须保持其宽高比,每个游戏区域将以10列和2行卡片开头.随着更多卡的播放,列和/或行的数量可能会改变.每个玩家区域可以具有不同数量的列和/或行.卡可以重叠,并且可以侧向放置(轻拍).所有区域的卡片尺寸应相同(尽管在某些区域可能会被裁剪).卡片不需要完全位于网格上(它们不一定是对齐网格).
当用户将鼠标悬停在卡片上时,它应该使用动画扩展到更大的尺寸.当扩展时,一个玩家区域中的牌可能会溢出到另一个玩家的区域(但只有鼠标悬停时).
鉴于这些要求,我很想使用一个从Canvas派生的大型用户控件,每个卡都有图像对象(以及描绘区域的其他形状).这意味着我将在OnRenderSizeChanged事件期间做很多工作来将子项定位在画布中(手动布局).
由于自由形式的放置和重叠,使用网格对我来说似乎不可行.
将游戏区域分解为较小的用户控件将利用WPF布局功能,但似乎分解会阻止卡在鼠标悬停期间扩展到相邻的用户控件,因此这似乎也不可行.
是否有一个更好的替代一个基于大型画布的控件?在WPF中进行手动布局似乎是错误的,但我看不到替代方案.
| 归档时间: |
|
| 查看次数: |
3649 次 |
| 最近记录: |