WPF Panel.Children vs Panel.InternalChildren - Was ist der Unterschied?

8

Laut MSDN - Panel.InternalChildren-Eigenschaft :

  

Klassen, die von Panel abgeleitet sind   sollte diese Eigenschaft anstelle von verwenden   die Kinder   Eigenschaft, für interne Überschreibungen wie   als MeasureCore   und ArrangeCore .

Also, das ist wirklich eine zweiteilige Frage:

  1. Wenn ich ein eigenes Panel erstelle, FooPanel , das von Panel abgeleitet ist, kann ich scheinbar nicht MeasureCore oder ArrangeCore überschreiben. Ich bin mir nicht sicher, warum diese Aussage überhaupt da ist. Ich kann jedoch MeasureOverride und ArrangeOverride überschreiben. Also, ich frage mich, ob ich noch die InternalChildren -Eigenschaft für diese 2 Methoden verwenden muss.

  2. Was ist der wahre Unterschied zwischen der Eigenschaft Children und der Eigenschaft InternalChildren ?

m-y 07.04.2011, 15:55
quelle

2 Antworten

9
  1. Sie würden MeasureOverride und ArrangeOverride überschreiben, was ein Fehler in der Dokumentation oder für interne Microsoft-Mitarbeiter sein muss. MeasureCore und ArrangeCore werden von FrameworkElement versiegelt, so dass Sie sie nicht überschreiben können.

  2. Das Children-Objekt ist öffentlich und ruft einfach InternalChildren auf, das geschützt ist. Also ist beides wahrscheinlich sicher, da Kinder inline werden würden.

MSDN sagt etwas anderes ( Ссылка ), aber die Dokumentation ist falsch. (Verwenden Sie Reflektor, um zu sehen, dass die Implementierung von Children einfach InternalChildren aufruft)

    
CodeNaked 07.04.2011, 17:27
quelle
1

BEARBEITEN: Wie CodeNaked korrigiert - MSDN-Dokumente sind in der Tat falsch. InternalChildren und Children sind gleich.

Kinder sind nur Kinder, die regelmäßig hinzugefügt wurden, während InternalChildren Kinder enthält, die durch Datenbindung hinzugefügt wurden (wenn das Panel ItemsPanelTemplate ist)

  

"Children repräsentiert die Child-Sammlung von Elementen, die das Panel ist   bestehend aus. InternalChildren repräsentiert den Inhalt der Children   Sammlung plus die Mitglieder, die durch Datenbindung erzeugt werden. Beide bestehen   einer UIElementCollection von untergeordneten Elementen, die innerhalb des übergeordneten Elements gehostet werden   Panel. "

siehe Ссылка

    
Elad Katz 09.02.2012 15:44
quelle