操纵画布儿童C#WPF

时间:2017-01-13 13:33:59

标签: c# wpf canvas

我无法找到操作以编程方式添加的canvas子元素UI元素的方法。这是我在画布中添加子项的代码。我想在运行时操作每个画布子项。

有什么方法可以做到这一点吗?

Canvas = new Canvas();
canvas.Width = mapArea.ActualWidth;
canvas.Height = mapArea.ActualHeight;
mapArea.Children.Add(new UIElement() { Uid = "Camera" + index });

Image imageB = new Image();
{
    imageB.Width = 60;
    imageB.Source = camera;
}

mapArea.Children.Add(imageB);
Canvas.SetTop(imageB, PosX);
Canvas.SetLeft(imageB, PosY);

1 个答案:

答案 0 :(得分:0)

取决于你想对每个孩子做什么。假设您想要将所有Path对象变为红色

foreach (var c in canvas.Children.OfType<Path>())
{
    c.Stroke = Brushes.Red;
}

或者更改所有图像的宽度:

foreach (var c in canvas.Children.OfType<Image>())
{
    c.Width= 10;
}

或者,如果您知道某个特定类型的孩子存在于特定索引中,您可以执行以下操作:

var child = (Image)canvas.Children.ElementAt(3) ;