Я пытаюсь реализовать следующее: у меня есть менеджер предметов, внутри которого есть класс предметов. Класс item может хранить два возможных его визуальных представления - BitmapImage (растровое изображение) и UserControl (вектор).
Затем, в игре, мне нужно разделить одно и то же изображение или векторное управление между всеми возможными местами, где это происходит. Например, рассмотрим 10 деревьев на карте, и все они указывают на один и тот же векторный элемент управления. Или в некоторых случаях это может быть источник растрового изображения.
Таким образом, проблема в том, что источник BitmapImage может быть легко использован в приложении несколькими элементами UIE. Однако, когда я пытаюсь разделить векторный элемент управления, он завершается неудачно и говорит, что дочерний элемент уже является дочерним элементом другого элемента управления. Я хочу знать, как организовать это наилучшим образом. Например, замените UserControl другим типом элемента управления или хранилища, однако я должен быть уверен, что он поддерживает анимацию раскадровки внутри.
Код выглядит так:
if (bi.item.BitmapSource != null)
{
Image previewImage = new Image();
previewImage.Source = bi.item.BitmapSource;
itemPane.ItemPreviewCanvas.Children.Add(previewImage);
} else
if (bi.item.VectorSource != null)
{
UserControl previewControl = bi.item.VectorSource;
itemPane.ItemPreviewCanvas.Children.Add(previewControl);
}
Или невозможно использовать один и тот же элемент управления в разных местах, тогда как лучше всего сделать копию или лучше всего хранить векторные данные.
Заранее спасибо