在我的Silverlight应用程序中,我在应用程序开始中加载我需要的所有图像,并将它们存储在词典中。
然后,当我需要它们时,我从词典中选择并将它们附加到XAML树等中。
但是,我遇到的问题是,如果我将一个Image对象附加到 Grid ,然后想再次使用该图像 ,它会告诉我:
图片元素已经是孩子了 另一个元素。
如何浏览字典并“从父XAML元素中分离所有图像”?
答案 0 :(得分:2)
而不是保存Image
控件字典而不是ImageSource
字典。可以将ImageSource
的单个实例分配给多个Image
控件。
但是我怀疑创建一个ImageSource本身不会下载实际文件,直到有需求。如果是这种情况,您的初始化者仍然需要创建使用这些图像源的图像列表,并等待所有图像指示它们已加载。然后,您可以保留ImageSource
字典并放弃实际Image
控件列表。
答案 1 :(得分:1)
Grid parentGrid = VisualTreeHelper.GetParent(image) as Grid;
if (parentGrid != null)
parentGrid.Children.Remove(image);