Есть ли у фигур событие «клик» и «Дети в WPF»? - PullRequest
0 голосов
/ 28 октября 2018

Я создаю игру Mancala.У меня есть холст в сетке, внутри холста у меня есть круги, которые представляют отверстия и прямоугольники, которые представляют Манкалу, и у меня также есть изображения, которые представляют камни.Я использовал элемент управления Image для получения изображений.

Изображения в кругах.у них есть индекс ZIndex -2, поэтому они находятся под кругами, чтобы быть правильными, а круги прозрачны, чтобы вы могли видеть сквозь них.

Я хочу сделать круги как-то кликабельными (я знаю, что в фигурах нет события щелчка, но на другом мероприятии, напоминающем щелчок, было бы достаточно).и затем изображения под этим кругом переместятся в разные координаты на холсте под следующими кругами, чтобы быть точными.

Итак, мой вопрос: есть ли способ дать детям круги, чтобы я мог знать, сколько изображений вэтот конкретный круг в определенное время?Любые дополнительные советы будут оценены.

Спасибо

1 Ответ

0 голосов
/ 29 октября 2018

У Shape нет события Click, но вы можете обработать событие MouseLeftButtonDown.

И у него тоже нет свойства Children, но вы, вероятно, можете решить свою проблему, добавив Shape и его "дочерние" элементы к одному и тому же Grid, например ::

<Grid Background="Transparent" MouseLeftButtonDown="OnMouseLeftButtonDown">
    <Ellipse Fill="Red" Width="100" Height="100" />
    <Image ... />
</Grid>

private void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    Grid clickedGrid = (Grid)sender;
    Ellipse ellipse = clickedGrid.Children[0] as Ellipse;
    //...
}
...