我有一个固定大小的图像数组,我想以下列格式在网格中显示,其中包含七个项目的行相对于它上面的一行居中。以不规则网格格式显示数组项目
12345678
1234567
12345678
1234567
我不确定我是如何遍历数组来实现这一点的。任何帮助表示赞赏。
我有一个固定大小的图像数组,我想以下列格式在网格中显示,其中包含七个项目的行相对于它上面的一行居中。以不规则网格格式显示数组项目
12345678
1234567
12345678
1234567
我不确定我是如何遍历数组来实现这一点的。任何帮助表示赞赏。
这里是我结束了,用一个想法从萨尔瓦多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
}
}
}
感谢您对所有的答案和帮助。
您无法在控制台中完成此操作,因为文本在没有任何样式信息的情况下呈现。没有前面的空间,它看起来像你写的。如果你在文字前放置一个空格,它将看起来对齐。在控制台中没有半空间这样的东西。
如果你想将它渲染成更丰富的东西,比如html,这可能是可以实现的。
不要使用网格;数据不会以表格形式显示。如果您使用的是ASP.NET,请使用服务器端中继器,并在每行中包含Panel
,并在适当的位置设置面板的HorizontalAlign="Center"
。
我对XNA并不熟悉,所以我不知道您是否拥有控制窗口,您可以在屏幕上放置或者必须手动执行所有绘图。不管怎样,对中逻辑是相同的并且可以适应:
由于文本必须通过包含框内的左上角的坐标来放置(可以是屏幕,封闭面板或窗口,& c 。)您需要执行以下计算:
textLeft = (containerWidth - textWidth)/2
为直观起见,可能会更好,扩展它:
textLeft = containerWidth/2 - textWidth/2
于是,开始在容器的左侧(X为零),您将在容器中间移动一半,然后移回文本宽度的一半,从而将中间线任一侧的文本宽度减半。
你不说你是在开发一个Windows Forms应用程序还是一个网站?或者也许别的东西?你有没有尝试过任何东西? – 2011-02-07 22:22:31
另外...你的数组格式是什么?它是二维的吗?最后的“空白”项目(即缺失的第8个元素)如何表示?一行中可以出现多少个元素的上限和下限是多少? – 2011-02-07 22:24:52