【问题标题】:How to use a button x:Name or something to indicate button [duplicate]如何使用按钮x:名称或其他东西来指示按钮[重复]
【发布时间】:2021-08-14 08:26:03
【问题描述】:

我有问题。我要为大学做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,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"/>

【问题讨论】:

  • 你熟悉ButtonCommand属性和ICommand接口吗?
  • 您能否也提及您如何使用&lt;Button/&gt; 对象的XAML 部分?
  • 实际上从未听说过...
  • @Maaz 哦...网格中的所有 20 个按钮都与一个功能相关联,该功能写在问题中,因此它们之间几乎没有区别。 &lt;Button x:Name="strip1_1" Content="" HorizontalAlignment="Left" Margin="2,1,0,0" VerticalAlignment="Top" Width="22" Height="4" Click="Strip1_Click" BorderBrush="Black"/&gt; &lt;Button x:Name="strip1_2" Content="" HorizontalAlignment="Left" Margin="37,1,0,0" VerticalAlignment="Top" Width="22" Height="4" Click="Strip1_Click" BorderBrush="Black"/&gt;
  • 我建议,作为一项长期学习功能,阅读有关 MVVM 编程模式的信息。从这里开始:MVVM Pattern for Xamarin!

标签: c# wpf button datacontext sender


【解决方案1】:

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

<Button Click="DoSomething_OnClick"/>

在代码隐藏中:

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

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

【讨论】:

    猜你喜欢
    • 2012-04-12
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 2014-11-13
    • 2012-06-02
    • 1970-01-01
    相关资源
    最近更新 更多