2011-02-07 12 views
0

グリッドに表示する固定サイズの画像の配列を、次のような形式で表示します。その上にある線に対して中央に7つの項目が含まれています。配列項目を不規則なグリッド形式で表示する

12345678 
1234567 
12345678 
1234567 

これを達成するために配列をどのように反復処理できるかは確信しています。どんな助けもありがとうございます。

+1

Windowsフォームアプリケーションを開発しているのか、Webサイトを開発しているのかは分かりませんが、それとも別の何か?もう何か試しましたか? –

+0

また、あなたの配列はどのような形式ですか?二次元ですか?最後の「空白」の項目(つまり、欠落している8番目の要素)はどのように表現されていますか? 1つの行に表示できる要素の上限と下限は何ですか? –

+0

7つの項目を含む行だけを中央に配置しますか?またはそれらはすべて中心に置かれていますか?これはコンソールアプリケーションかGUIですか?配列には7文字と8文字のエントリしか含まれていませんか? –

答えて

0

はエル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 
         } 
       } 
      } 

からのアイデアを使用して、私がなってしまったものだすべての答えと助けてくれてありがとう。

2

テキストはスタイリング情報なしでレンダリングされるため、コンソールでこれを実行することはできません。正面にスペースがなければ、あなたが書いたように見えます。テキストの前にスペースを入れると、右揃えになります。コンソールに半分のスペースはありません。

htmlなどのより豊かなものでレンダリングする場合、これは達成可能です。

+0

コードブロック内のテキストは、配列項目を表示したかった形式を表現することになっていました。私は実際に画像を扱っています。私はそれをより明確にするために質問を編集しました。申し訳ありません。 – David

0

グリッドは使用しないでください。データは表形式で表示されていません。 ASP.NETで作業している場合は、各行にラップされたPanelのサーバー側リピータを使用し、必要に応じてパネルのHorizontalAlign="Center"を設定します。

0

私はXNAに慣れていないので、画面の周りに置くことができるコントロールウィンドウに恵まれているのか、手動ですべての描画を実行する必要があるのか​​分かりません。それに関係なく、センタリングロジックは同じであり、適応することができます。

テキストは、格納するボックス内の左上隅の座標で配置する必要があります(画面、囲むパネルまたはウィンドウ、&c 。)あなたは、次の計算を実行する必要があります。

textLeft = (containerWidth - textWidth)/2 

これを可視化するために、それを展開する方がよいかもしれません:

textLeft = containerWidth/2 - textWidth/2 

ので、コンテナの左側に始まる(X 0の場合)、コンテナを半分移動した後、テキストの幅の半分を後ろに移動し、テキストの幅の半分を中心線の両側に配置します。ここで

関連する問題