微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我有问题。我要做大学app,吉他模拟器,我的想法是把每个品格作为一个按钮,并实现变色功能来了解哪个品格(按钮)被夹住(按下)

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" VerticalAlignment="Top" Width="22" Height="4" Click="Strip1_Click" BorderBrush="Black"/>
<Button x:Name="strip1_2" Content="" HorizontalAlignment="Left" Margin="37,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 种不同的方法。这样,您就可以确切地知道哪个按钮调用了哪个方法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。