У меня проблема. Мне нужно сделать приложение для колледжа, эмулятор гитары, моя идея заключалась в том, чтобы поместить каждый лад как кнопку и реализовать функцию изменения цвета, чтобы понять, какой лад (кнопка) зажат (нажат)
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"/>
Command
Button
и интерфейсомICommand
? - person Maaz   schedule 26.05.2021<Button/>
? - person Maaz   schedule 26.05.2021<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"/>
- person Axteity   schedule 26.05.2021