如何从XAML树中的另一个元素中取消附加元素?

时间:2010-03-19 18:01:19

标签: wpf silverlight xaml

在我的Silverlight应用程序中,我在应用程序开始中加载我需要的所有图像,并将它们存储在词典中。

然后,当我需要它们时,我词典中选择并将它们附加到XAML树等中。

但是,我遇到的问题是,如果我将一个Image对象附加到 Grid ,然后想再次使用该图像 ,它会告诉我:

  

图片元素已经是孩子了   另一个元素。

如何浏览字典并“从父XAML元素中分离所有图像”?

2 个答案:

答案 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);