Wpf 如何识别按钮相对于包含一组按钮的网格的位置

Wpf 如何识别按钮相对于包含一组按钮的网格的位置,wpf,wpf-controls,Wpf,Wpf Controls,我是WPF的初学者 我写了一些xaml代码来制作一个井字游戏 我有一个3×3单元格的网格。我在网格的每个单元格中都放置了一个按钮 我想在按下按钮时打印出按钮相对于网格的位置(即行号和列号) 这是xaml代码: <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microso

我是WPF的初学者

我写了一些xaml代码来制作一个井字游戏

我有一个3×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代码:

命名空间WpfApplication1
{
/// 
///MainWindow.xaml的交互逻辑
/// 
公共部分类主窗口:窗口
{
静态整数符号;
静态int[][]游戏;
公共主窗口()
{
初始化组件();
符号=1;
游戏=新整数[3][];
游戏[0]=新整数[3];
游戏[1]=新整数[3];
游戏[2]=新整数[3];
}
私有无效按钮\u单击(对象发送者,路由目标e)
{
按钮b=(按钮)发送器;
如果(符号==1)
{
b、 Content=“x”;
符号=2;
}
其他的
{
b、 Content=“o”;
符号=1;
}
}
}
}

按钮\u单击
方法中,我想打印网格的行号和列号,按钮所在的位置。如何获取这些信息?

您可以通过以下静态网格方法获取行和列索引:

int row = Grid.GetRow(b);
int column = Grid.GetColum(b);
这些方法返回
Grid.Row
Grid.Column
的值

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