Der Fehler "Element ist bereits ein Kind eines anderen Elements" in Silverlight App.xaml

8

Ich erhalte immer wieder einen seltsamen Fehler in meiner App.xaml -Datei:

  

Element ist bereits das Kind eines anderen Elements.

Meine App.xaml-Datei sieht folgendermaßen aus:

%Vor%

Der Fehler wird für das gesamte Element ResourceDictionary (von Zeile 5 bis 9) gemeldet.

ProvisiorResourceDictionary.xaml enthält eine Reihe von Stilen und Vorlagen. Nichts aufregendes meiner Meinung nach.

Weiß jemand, was falsch ist?

Mit freundlichen Grüßen

Ronald Wildenberg

    
Ronald Wildenberg 13.11.2009, 08:32
quelle

5 Antworten

6

Ich habe die Ursache des Problems selbst gefunden, dank der Hinweise in dem Kommentar von AnthonyWJones.

Es scheint, dass alles in einem Silverlight-Ressourcenwörterbuch gemeinsam genutzt werden muss. Der Grund dafür ist, dass Elemente in einem Ressourcenwörterbuch (wahrscheinlich) an mehreren Stellen in der Steuerhierarchie hinzugefügt werden.

Ich hatte zwei Elemente in meinem Ressourcenwörterbuch, die nicht gemeinsam genutzt werden konnten.

BEARBEITEN : In WPF können Sie die x:Shared Attribut für Objekte in einem Ressourcenwörterbuch, um zu erzwingen, dass WPF für jeden Ressourcenabruf eine neue Instanz erstellt. Silverlight unterstützt dieses Attribut leider nicht.

>     
Ronald Wildenberg 13.11.2009, 12:54
quelle
3

Wahrscheinlich KEINE Antwort auf diese Frage , aber ein anderer häufiger Grund, warum Sie dieses Element erhalten können, ist bereits das Kind eines anderen Elements. Fehler ist, wenn Sie versuchen, eine Ressource wie ein Bild zu laden, und Sie haben den Dateinamen falsch.

IE beschweren sich besonders darüber.

%Vor%

Da dies jedoch mit Ressourcen zu tun hat, könnte es möglicherweise ein Szenario geben, in dem dies eine Antwort auf diese Frage wäre: -)

    
Simon_Weaver 11.08.2010 03:30
quelle
1

Ich hatte das gleiche Problem, als ich meine Styles.xaml-Datei überprüfte, hatte sie einige Elemente mit dem gleichen Namen, ich änderte den Namen der Elemente und machte sie einzigartig, und das Problem gelöst:)

    
Zain Shaikh 31.10.2010 14:00
quelle
0

Es scheint auch so, als ob Sie versuchen, ein Storyboard mit einem Schlüssel in ein ResourceDictionary zu stellen, anstatt es in eine ControlTemplate

zu legen

Dies liegt daran, dass Storyboards statusbehaftete Objekte sind und nicht wiederverwendet werden können (sie verfolgen, ob sie gestartet, pausiert usw. sind).

    
George Birbilis 31.01.2014 12:02
quelle
0

Der Hinweis von @Simon_Weaver in der Antwort

  

TIPP: Wenn Sie nicht sicher sind, welche Elemente diesen Fehler verursachen, einfach   Erstellen Sie eine zweite Resources2.xaml, die von App.xaml referenziert wird, und verschieben Sie sie   über einige Dateien dazu. stellen Sie sicher, dass Sie vollständig neu kompilieren. das sollte   Erlauben Sie Ihnen zu bestimmen, welche Ressourcen nicht gemeinsam nutzbar sind und verursachen   das Problem

hat mich dazu gebracht, diesen Gegenstand zu finden, den ersten, den ich tatsächlich entfernt habe; Es war ein unbenutztes Pfadobjekt:

%Vor%

als der Täter. Acrodieren zu Resource Dictionaries #Objects für Resource Dictionary Usage , es wird nicht aufgelistet a Path als gemeinsam nutzbares Element.

    
OmegaMan 29.06.2015 15:05
quelle