У меня есть стек, в который я добавляю динамически добавленные кнопки на основе 2D-массива, определенного в другом месте. Поэтому по существу он создает сетку кнопок, но добавляется как дочерние элементы стекапанели. Что мне нужно сделать, это указать дочернюю кнопку на основе номера столбца и строки. Вот стопка.WPF Get Stackpanel children neighbors
<StackPanel Name="myArea" HorizontalAlignment="Center" VerticalAlignment="Center"/>
И вот некоторые из рассматриваемого кода.
Grid values = new Grid();
values.Width = 320;
values.Height = 240;
values.HorizontalAlignment = HorizontalAlignment.Center;
values.VerticalAlignment = VerticalAlignment.Center;
int x = valueBoard.GetLength(0);
int y = valueBoard.GetLength(1);
for (int i = 0; i < x; i++)
{
ColumnDefinition col = new ColumnDefinition();
values.ColumnDefinitions.Add(col);
}
for (int j = 0; j < y; j++)
{
RowDefinition row = new RowDefinition();
values.RowDefinitions.Add(row);
}
for (int i = 0; i < x; i++) for (int j = 0; j < y; j++)
{
Button button = new Button();
button.Content = "";
button.Click += ButtonClick;
button.MouseRightButtonUp += RightClick;
Grid.SetColumn(button, i);
Grid.SetRow(button, j);
values.Children.Add(button);
}
myArea.Children.Add(values);
Так что теперь, щелкнув по кнопке, я хочу скрыть все соседние кнопки в сетке. Вот мой щелчок событие:
private void ButtonClick(object sender, RoutedEventArgs e)
{
int col = Grid.GetColumn((Button)sender);
int row = Grid.GetRow((Button)sender);
Button source = e.Source as Button;
source.Visibility = Visibility.Hidden;
}
Как бы я, в ButtonClick
, скрыть соседние кнопки с col
и row
ценности? Есть ли какой-то геттер или сеттер, чем я могу передать эти значения и редактировать свойство соседа Visibility
?
Вы делаете некоторые игры? Если «Да», попробуйте использовать некоторые настраиваемые панели, я мог бы найти некоторые образцы для вас, если это необходимо. –