我无法找到操作以编程方式添加的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);
答案 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) ;