gpt4 book ai didi

c# - Canvas child 识别

转载 作者:行者123 更新时间:2023-11-30 22:12:54 26 4
gpt4 key购买 nike

我有一个名为 Location 的具有 Point 属性的节点类。我创建了这个类的几个对象,然后将它们放在通用列表中。在我的应用程序中,每个节点都由图像表示(节点位置 == 图像位置)。

为了呈现图像,我迭代了我的节点列表并将图像添加到我的 WPF 主窗口上的 Canvas。基本上,我列表中的第一项是我的 Canvas 的第一个子项。

当我更改节点的位置时,渲染图像也会自动更改。但是,如果我想使用 MouseMove 事件移动图像,我不知道如何从我的节点列表中访问特定元素。我怎么知道哪个元素是哪个?

最佳答案

由于您按照与节点列表中节点相同的顺序将图像添加到 Canvas,因此您可以简单地获取 Canvas 子索引并通过该索引访问节点:

private void canvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
var element = canvas.InputHitTest(e.GetPosition(canvas)) as UIElement;

if (element != null)
{
int index = canvas.Children.IndexOf(element);
node hitNode = nodelist[index];
}
}

关于c# - Canvas child 识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19469528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com