我想將列表中的所有圖像設置爲網格。但我有與Children.Add
在網格中添加第二個圖像的問題。 這是我的例子:網格子已經是另一個視覺或組合的根目標
List<Image> images = new List<Image>(8);
images.AddRange(Enumerable.Repeat(new Image(), 8));//8 empty images
然後設置圖片:
foreach (var image in images)
{
BitmapImage b = new BitmapImage();
b.BeginInit();
b.UriSource = new Uri("path");
b.EndInit();
image.Source = b;
image.Width = 50;
image.Height = 50;
}
然後在一個函數調用是這樣的:
private void put_images()
{
int i = 0;
foreach (var image in images)
{
Grid.SetRow(image, i);
Grid.SetColumn(image, i);
LayoutRoot.Children.Add(image);//here is error
i++;
}
}
我得到運行時錯誤:Additional information: Specified Visual is already a child of another Visual or the root of a CompositionTarget.
我不明白爲什麼,因爲我有8個不同的圖像,我不知道如何解決這個問題。
是否有XAML與此相符?您是否100%肯定LayoutRoot是您期望的Grid? – WasGoodDone
在添加到LayoutRoot之前,似乎有問題的圖像是作爲小孩添加的。你有沒有檢查'image.Parent'是否爲空? – Domysee
我發現問題。我回答說。 –