WPF 中的 Shapes 是否有点击事件和 Children

Does the Shapes have click event and Children in WPF

我正在制作宝石棋游戏。我在网格中有一个 canvas,在 canvas 里面我有代表孔的圆圈和代表曼卡拉的矩形,还有代表石头的图像。我已经使用图像控件来获取图像。

图片在圆圈中。他们有 ZIndex -2 所以他们在圆圈下面是正确的,圆圈是透明的所以你可以看透。

我想让圆圈以某种方式可点击(我知道形状中没有点击事件,但在另一个类似于点击的事件中就足够了)。然后该圆圈下方的图像将移动到下一个圆圈下方 canvas 上的不同坐标,准确地说。

所以我的问题是:有没有办法给出圈子 children 以便我可以知道在特定时间该特定圈子中有多少张图片?。如有任何额外建议,我们将不胜感激。

谢谢

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

它也没有 Children 属性,但您可以通过将 Shape 及其 "child" 元素添加到相同的 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;
    //...
}