如何使用按钮 x:Name 或其他东西来指示按钮

How to use a button x:Name or something to indicate button

我有问题。我必须为大学做应用程序,吉他模拟器,我的想法是将每个品格作为一个按钮,并实现颜色变化功能以了解哪个品格(按钮)被夹住(按下)

var button = (Button)sender;
_buttonLastPressed = button;
var parent = (Grid)button.Parent;
var index = parent.Children.IndexOf(strip1_1);
var str = Math.Floor((decimal)(index + 1) / 20);
for (int i = 0; i < 20; i++)
{
    var element = (Button)parent.Children[i + Convert.ToInt32(str) * 20];
    element.Background = Brushes.White;
}
button.Background = Brushes.Blue;

此选项效果很好,但出现了问题,我不知道如何从按钮获取一些信息以便将其用于播放什么声音(以便程序了解按下了哪个按钮)。我相信可以以某种方式使用 DataContext,但我无法想象如何更有效地做到这一点

提示,有六个琴弦,我决定将每个琴弦声明为网格,每个网格中有 20 个品格(按钮),你只能按住所有 20 个中的一个

XAML:

<Button x:Name="strip1_1" Content="" HorizontalAlignment="Left" Margin="2,1,0,0" VerticalAlignment="Top" Width="22" Height="4" Click="Strip1_Click" BorderBrush="Black"/>
<Button x:Name="strip1_2" Content="" HorizontalAlignment="Left" Margin="37,1,0,0" VerticalAlignment="Top" Width="22" Height="4" Click="Strip1_Click" BorderBrush="Black"/>

一个可能的解决方案是使用引用不同方法的每个按钮的 Click 属性。

<Button Click="DoSomething_OnClick"/>

在代码隐藏中:

private void DoSomething_OnClick(object sender, RoutedEventArgs e)
{
    // Your code here
}

您可以使用它来获得 20 种不同的方法。这样,您就可以确切地知道哪个按钮调用了哪个方法。