繁体   English   中英

Windows Store应用程序中XAML网格中的图像重叠

[英]Image Overlap in XAML Grid in Windows Store App

我想看看是否有人可以指出我正确的方向。 我想为Windows应用商店创建一个基本的纸牌游戏应用。 我已经完成了多个应用程序,并且对XAML网格和将图像放置在单元格中非常熟悉。 在纸牌游戏中,我将具有与Microsoft的Hearts游戏非常相似的设置(纸牌排在底部,而纸牌彼此重叠)。 我的问题是我不知道如何使网格单元中的图像相互重叠。 有谁知道如何实现这一目标? 谢谢。

顺便说一句,如果解决方案需要背后的代码,我知道VB.Net和C#。

您正在寻找的是Grid.RowSpanGrid.ColumnSpan

例如:

考虑一个3x3 Grid (用X表示的空单元格):

X X X
X X X
X X X

现在考虑Grid.Row=0Grid.Column=1的元素。 它将像这样渲染( O是一个填充的单元格)。

X O X
X X X
X X X

现在,如果增加该元素的RowSpanColumnSpan ,但保持其RowColumn位置不变,则我们将创建一个更大的框,在同一位置具有左上角的单元格。 考虑Grid.RowSpan=2Grid.ColumnSpan=2

X O O
X O O
X X X

“框”固定在位置1,0 (x,y或列,行)上,但延伸到下一个单元格,从而形成2x2子网格。

现在,考虑第二个元素Y 如果我们把以前的图纸,并添加YGrid.Row=1, Grid.Column=0, Grid.RowSpan=2, Grid.ColumnSpan=3 ,那么我们将得到:

X O O
Y Y Y
Y Y Y

请记住,画布是一个“堆栈”,因为最后绘制的对象在顶部。

您可以使用此方法来重叠网格中的不同元素。 最后一个示例,因为它可以更好地说明您可能需要的卡片重叠概念。

O := 
{
    Grid.Row=0, 
    Grid.Column=0, 
    Grid.RowSpan=2,
    Grid.ColumnSpan=2
}

Y := 
{
    Grid.Row=1, 
    Grid.Column=1, 
    Grid.RowSpan=2,
    Grid.ColumnSpan=2
}

首先绘制O,然后绘制Y

O O X
O Y Y
X Y Y

先画Y,然后画O

O O X
O O Y
X Y Y

我相信,您也可以手动修改Canvas.ZIndex,如@ChrisShao所述。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM