我有一系列固定大小的图像,我希望以下列格式在网格中显示,其中包含七个项目的行相对于其上方的行居中。
12345678
1234567
12345678
1234567
我不确定如何迭代数组来实现这一目标。任何帮助表示赞赏。
答案 0 :(得分:2)
您无法在控制台中完成此操作,因为文本的呈现没有任何样式信息。如果没有前面的空间,看起来就像你写的那样。如果在文本前放置一个空格,它将看起来正确对齐。控制台中没有半空间这样的东西。
如果你要用更丰富的东西(如html)渲染它,这将是可以实现的。
答案 1 :(得分:0)
不要使用网格;数据未以表格形式显示。如果您正在使用ASP.NET,请使用服务器端转发器,每行包裹Panel
,并在适当的位置设置面板HorizontalAlign="Center"
。
答案 2 :(得分:0)
我不熟悉XNA所以我不知道你是否有幸可以在屏幕周围放置控制窗口,或者必须手动执行所有绘图。无论如何,居中逻辑是相同的,可以调整:
由于文本必须通过左上角的坐标放置在包含框中(无论是屏幕,封闭的面板或窗口,还是c。),您需要执行以下计算:
textLeft = (containerWidth - textWidth) / 2
要想象这一点,最好扩展它:
textLeft = containerWidth / 2 - textWidth / 2
因此,从容器的左侧开始( x 为零),您将在容器中间移动一半,然后向后移动文本宽度的一半,从而将文本宽度的一半放置中线的一侧。
答案 3 :(得分:0)
这是我最终使用El Ronnoco的想法
for (int i = 0; i <= 7; i++)
{
for (int j = 0; j <= 7; j++)
{
grid[i, j].posX = i * 50;
grid[i, j].posY = j * 50;
if (i % 2 > 0)
{
grid[i, j].posY += 25;
if (j == 7)
{
//remove grid[i, j] from array/sight
}
}
}
感谢您的所有答案和帮助。