Ich versuche folgendes zu implementieren: Ich habe einen Items Manager, der eine Item-Klasse enthält. Die Item-Klasse kann zwei mögliche visuelle Darstellungen speichern - BitmapImage (Bitmap) und UserControl (Vektor).
Später im Spiel muss ich dann das gleiche Bild oder die gleiche Vektorsteuerung an allen möglichen Stellen teilen, an denen sie verwendet wird. Zum Beispiel können 10 Bäume auf der Karte alle auf dieselbe Vektorsteuerung verweisen. Oder in einigen Fällen kann dies die Bitmap-Bildquelle sein.
Das Problem ist also, dass die BitmapImage-Quelle einfach von mehreren UIElementen in der Anwendung geteilt werden kann. Wenn ich jedoch versuche, die Vektorsteuerung zu teilen, schlägt dies fehl und zeigt an, dass das untergeordnete Element bereits ein untergeordnetes Element einer anderen Steuerung ist. Ich möchte wissen, wie ich dies am besten organisieren kann. Zum Beispiel ersetzen Sie UserControl durch einen anderen Steuerungstyp oder eine andere Speicherung, jedoch muss sichergestellt werden, dass dies Storyboard-Animationen unterstützt.
Der Code sieht so aus:
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);
}
Oder es ist unmöglich, dieselbe Steuerung an verschiedenen Stellen zu teilen. Was ist dann der beste Weg, um eine Kopie zu machen oder die Vektordaten am besten zu speichern.
Vielen Dank im Voraus