形状是否具有单击事件和WPF中的子级

时间:2018-10-27 21:26:04

标签: c# wpf visual-studio wpf-controls

我正在创建一个Mancala游戏。我在网格中有一个画布,在画布中有代表孔的圆和代表Mancalas的矩形,还有代表石头的图像。我已经使用图像控件来获取图像。

图像在圆圈中。它们具有ZIndex -2,所以它们在圆圈下面是正确的,并且圆圈是透明的,因此您可以看到。

我想使圆以某种方式可单击(我知道形状中没有单击事件,但是在另一个类似于单击的事件就足够了)。然后该圆圈下方的图片将移到下一个圆圈下方的画布上的不同坐标上。

所以我的问题是:有什么办法可以给圈子里的孩子们,以便我可以知道在特定时间那个特定圈子中有多少张图片?任何其他建议将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:1)

Shape没有Click事件,但是您可以处理MouseLeftButtonDown事件。

它也没有Children属性,但是您可以通过将Shape及其“子”元素添加到同一Grid中来解决问题,例如: / p>

<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;
    //...
}