2012-03-11 6 views
1

私はMetroスタイルのアプリで遊んでいます。 WpfのUniformGridを使ってシンプルなチェス盤を作りたかったのですが、Metroスタイルのアプリではサポートされていないようです。 Metro Styleアプリでチェス盤を作成する方法はありますか?メトロスタイルのアプリのチェスボード

+0

どの言語を使用していますか? – Ryan

+0

@minitech私はC#を使用しています –

答えて

2

8x8グリッドを使用できませんか? 8つのRowDefinitionsと8つのColumnDefinitionsが必要です。

これは非常に強力な方法です。グリッドの高さと幅が正方形である限り、結果のアイテムは適切な比率になります。また、各RowDefinitionのHeightと各ColumnDefinitionのWidthを同じ任意の値に設定して比例関係にすることもできます。

このような場合は、コードビハインドとXAMLのコントロールを追加することもできますが、これは私が選択したものです。

<Grid x:Name="LayoutRoot" Background="White" Width="400" Height="400" > 
    <Grid.RowDefinitions> 
     <RowDefinition /> 
     <RowDefinition /> 
     <RowDefinition /> 
     <RowDefinition /> 
     <RowDefinition /> 
     <RowDefinition /> 
     <RowDefinition /> 
     <RowDefinition /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
    </Grid.ColumnDefinitions> 

    <Border Background="Black" Grid.Row="0" Grid.Column="0"/> 
    <Border Background="Ivory" Grid.Row="0" Grid.Column="1"/> 
    <Border Background="Black" Grid.Row="0" Grid.Column="2"/> 
    <Border Background="Ivory" Grid.Row="0" Grid.Column="3"/> 
    <Border Background="Black" Grid.Row="0" Grid.Column="4"/> 
    <Border Background="Ivory" Grid.Row="0" Grid.Column="5"/> 
    <Border Background="Black" Grid.Row="0" Grid.Column="6"/> 
    <Border Background="Ivory" Grid.Row="0" Grid.Column="7"/> 

    <Border Background="Black" Grid.Row="2" Grid.Column="0"/> 
    <Border Background="Ivory" Grid.Row="2" Grid.Column="1"/> 
    <Border Background="Black" Grid.Row="2" Grid.Column="2"/> 
    <Border Background="Ivory" Grid.Row="2" Grid.Column="3"/> 
    <Border Background="Black" Grid.Row="2" Grid.Column="4"/> 
    <Border Background="Ivory" Grid.Row="2" Grid.Column="5"/> 
    <Border Background="Black" Grid.Row="2" Grid.Column="6"/> 
    <Border Background="Ivory" Grid.Row="2" Grid.Column="7"/> 

    <Border Background="Black" Grid.Row="4" Grid.Column="0"/> 
    <Border Background="Ivory" Grid.Row="4" Grid.Column="1"/> 
    <Border Background="Black" Grid.Row="4" Grid.Column="2"/> 
    <Border Background="Ivory" Grid.Row="4" Grid.Column="3"/> 
    <Border Background="Black" Grid.Row="4" Grid.Column="4"/> 
    <Border Background="Ivory" Grid.Row="4" Grid.Column="5"/> 
    <Border Background="Black" Grid.Row="4" Grid.Column="6"/> 
    <Border Background="Ivory" Grid.Row="4" Grid.Column="7"/> 

    <Border Background="Black" Grid.Row="6" Grid.Column="0"/> 
    <Border Background="Ivory" Grid.Row="6" Grid.Column="1"/> 
    <Border Background="Black" Grid.Row="6" Grid.Column="2"/> 
    <Border Background="Ivory" Grid.Row="6" Grid.Column="3"/> 
    <Border Background="Black" Grid.Row="6" Grid.Column="4"/> 
    <Border Background="Ivory" Grid.Row="6" Grid.Column="5"/> 
    <Border Background="Black" Grid.Row="6" Grid.Column="6"/> 
    <Border Background="Ivory" Grid.Row="6" Grid.Column="7"/> 

    <Border Background="Ivory" Grid.Row="1" Grid.Column="0"/> 
    <Border Background="Black" Grid.Row="1" Grid.Column="1"/> 
    <Border Background="Ivory" Grid.Row="1" Grid.Column="2"/> 
    <Border Background="Black" Grid.Row="1" Grid.Column="3"/> 
    <Border Background="Ivory" Grid.Row="1" Grid.Column="4"/> 
    <Border Background="Black" Grid.Row="1" Grid.Column="5"/> 
    <Border Background="Ivory" Grid.Row="1" Grid.Column="6"/> 
    <Border Background="Black" Grid.Row="1" Grid.Column="7"/> 

    <Border Background="Ivory" Grid.Row="3" Grid.Column="0"/> 
    <Border Background="Black" Grid.Row="3" Grid.Column="1"/> 
    <Border Background="Ivory" Grid.Row="3" Grid.Column="2"/> 
    <Border Background="Black" Grid.Row="3" Grid.Column="3"/> 
    <Border Background="Ivory" Grid.Row="3" Grid.Column="4"/> 
    <Border Background="Black" Grid.Row="3" Grid.Column="5"/> 
    <Border Background="Ivory" Grid.Row="3" Grid.Column="6"/> 
    <Border Background="Black" Grid.Row="3" Grid.Column="7"/> 

    <Border Background="Ivory" Grid.Row="5" Grid.Column="0"/> 
    <Border Background="Black" Grid.Row="5" Grid.Column="1"/> 
    <Border Background="Ivory" Grid.Row="5" Grid.Column="2"/> 
    <Border Background="Black" Grid.Row="5" Grid.Column="3"/> 
    <Border Background="Ivory" Grid.Row="5" Grid.Column="4"/> 
    <Border Background="Black" Grid.Row="5" Grid.Column="5"/> 
    <Border Background="Ivory" Grid.Row="5" Grid.Column="6"/> 
    <Border Background="Black" Grid.Row="5" Grid.Column="7"/> 

    <Border Background="Ivory" Grid.Row="7" Grid.Column="0"/> 
    <Border Background="Black" Grid.Row="7" Grid.Column="1"/> 
    <Border Background="Ivory" Grid.Row="7" Grid.Column="2"/> 
    <Border Background="Black" Grid.Row="7" Grid.Column="3"/> 
    <Border Background="Ivory" Grid.Row="7" Grid.Column="4"/> 
    <Border Background="Black" Grid.Row="7" Grid.Column="5"/> 
    <Border Background="Ivory" Grid.Row="7" Grid.Column="6"/> 
    <Border Background="Black" Grid.Row="7" Grid.Column="7"/> 

    <Border Background="Ivory" Grid.Row="1" Grid.Column="0"/> 
    <Border Background="Black" Grid.Row="1" Grid.Column="1"/> 
    <Border Background="Ivory" Grid.Row="1" Grid.Column="2"/> 
    <Border Background="Black" Grid.Row="1" Grid.Column="3"/> 
    <Border Background="Ivory" Grid.Row="1" Grid.Column="4"/> 
    <Border Background="Black" Grid.Row="1" Grid.Column="5"/> 
    <Border Background="Ivory" Grid.Row="1" Grid.Column="6"/> 
    <Border Background="Black" Grid.Row="1" Grid.Column="7"/> 

    <Border Background="Ivory" Grid.Row="1" Grid.Column="0"/> 
    <Border Background="Black" Grid.Row="1" Grid.Column="1"/> 
    <Border Background="Ivory" Grid.Row="1" Grid.Column="2"/> 
    <Border Background="Black" Grid.Row="1" Grid.Column="3"/> 
    <Border Background="Ivory" Grid.Row="1" Grid.Column="4"/> 
    <Border Background="Black" Grid.Row="1" Grid.Column="5"/> 
    <Border Background="Ivory" Grid.Row="1" Grid.Column="6"/> 
    <Border Background="Black" Grid.Row="1" Grid.Column="7"/> 

</Grid> 
+0

はい私はそれを行うことができますが、インターネット上の多くの人々は、すべてのセルが同じサイズであるので、はるかに簡単なWPFのUniformGridを使用することを提案します。私は8x8グリッドを使うつもりだが、サイズを統一する方法がわからないと思う。(私はXamlの世界では非常に新しい) –

+0

これを行う方法について上記の私の編集をチェックしてください。 – Robaticus

+0

ありがとう、これは私が必要としていたものです。 –

0

あなたはその後、ボードの状態が含まれている64項目のコレクションにバインド8に設定MaximumRowsOrColumnsプロパティでWrapGridを使用することができるデータバインディング使用する予定の場合。

WrapGrid API Reference

関連する問題