Как я могу отсоединить элемент от другого элемента в дереве XAML? - PullRequest
1 голос
/ 19 марта 2010

В моем приложении Silverlight я загружаю все изображения , которые мне нужны в приложении start , и сохраняю их в словаре .

Затем, когда они мне нужны, я выбираю их из словаря и присоединяю их в деревьях XAML и т. Д.

Однако у меня проблема в том, что если я присоединяю объект Image к Grid , а затем хочу использовать это изображение снова , он говорит мне:

Элемент изображения уже дочерний другого элемента.

Как я могу просмотреть свой словарь и "отсоединить все изображения от родительских элементов XAML"?

Ответы [ 2 ]

2 голосов
/ 20 марта 2010

Вместо словаря Image элементы управления содержат словарь ImageSource. Один экземпляр ImageSource может быть назначен нескольким элементам управления Image.

Однако я подозреваю, что создание ImageSource само по себе не загрузит реальный файл, пока не возникнет потребность. В этом случае вашему инициализатору все равно нужно будет создать список изображений, использующих эти источники изображений, и дождаться, пока все покажут, что они загружены. Тогда вы можете сохранить словарь ImageSource и отказаться от списка фактических Image элементов управления.

1 голос
/ 20 марта 2010
        Grid parentGrid = VisualTreeHelper.GetParent(image) as Grid;

        if (parentGrid != null)
            parentGrid.Children.Remove(image);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...