2012-01-31 10 views
1

私はWPFの初心者です。ボタンのセットを含むグリッドに対するボタンの位置を特定する方法

私はチックタックのつま先のゲームを作るためにいくつかのxamlコードを書いています。

私は3 x 3セルのグリッドを持っています。グリッドの各セルの内側にボタンを配置しました。

ボタンを押したときに、グリッド(ボタンの行番号と列番号)に対してボタンの位置を印刷したいとします。

これは、XAMLコードである:

<Window x:Class="WpfApplication1.MainWindow" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Title="Test Window" Height="500" Width="500" BorderBrush="#FA0D0D0D"> 

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition /> 
     <RowDefinition /> 
     <RowDefinition /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition /> 
     <ColumnDefinition /> 
     <ColumnDefinition /> 
    </Grid.ColumnDefinitions> 
    <Button Name ="b1" Grid.Column=" 0" Grid.Row=" 0" Click="button_Click" /> 
    <Button Name ="b2" Grid.Column=" 0" Grid.Row=" 1" Click="button_Click" /> 
    <Button Name ="b3" Grid.Column=" 0" Grid.Row=" 2" Click="button_Click" /> 
    <Button Name ="b4" Grid.Column=" 1" Grid.Row=" 0" Click="button_Click" /> 
    <Button Name ="b5" Grid.Column=" 1" Grid.Row=" 1" Click="button_Click" /> 
    <Button Name ="b6" Grid.Column=" 1" Grid.Row=" 2" Click="button_Click" /> 
    <Button Name ="b7" Grid.Column=" 2" Grid.Row=" 0" Click="button_Click" /> 
    <Button Name ="b8" Grid.Column=" 2" Grid.Row=" 1" Click="button_Click" /> 
    <Button Name ="b9" Grid.Column=" 2" Grid.Row=" 2" Click="button_Click" /> 

</Grid> 
</Window> 

これは、C#コードである:Iがグリッドの行番号および列番号を印刷したいbutton_Click方法、内側

namespace WpfApplication1 
{ 
/// <summary> 
/// Interaction logic for MainWindow.xaml 
/// </summary> 
public partial class MainWindow : Window 
{ 
    static int symbol; 
    static int[][] game; 
    public MainWindow() 
    { 
     InitializeComponent(); 
     symbol = 1; 
     game = new int[3][]; 
     game[0] = new int[3]; 
     game[1] = new int[3]; 
     game[2] = new int[3]; 

    } 

    private void button_Click(object sender, RoutedEventArgs e) 
    { 
     Button b = (Button)sender; 
     if (symbol == 1) 
     { 
      b.Content = "x"; 
      symbol = 2; 
     } 
     else 
     { 
      b.Content = "o"; 
      symbol = 1; 
     } 
    } 



} 

} 

ボタンが配置されます。どのようにしてその情報を入手できますか?

答えて

3

あなたはグリッドのこれらの静的メソッドによって行と列のインデックスを取得することができる:

int row = Grid.GetRow(b); 
int column = Grid.GetColum(b); 

方法はattached propertiesGrid.RowGrid.Columnの値を返します。

関連する問題