Laden...

Andauernde Aufrufe von OnArrange und OnRender

Erstellt von Stu42 vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.153 Views
S
Stu42 Themenstarter:in
506 Beiträge seit 2006
vor 6 Jahren
Andauernde Aufrufe von OnArrange und OnRender

Hallo,

ich habe ein Control welches von Panel erbt und in dem ich MeasureOverride, ArrangeOverride und OnRender überschreibe. Mein Problem ist, dass andauernt ArrangeOverride und OnRender aufgerufen werden (komischer weise OnMeasure nicht).

Ich kann die Ursache dafür nicht finden. Es ist kein InvalidateVisual-Aufruf von einer anderen Stelle.
Das übergeordnete Control bleibt vom Layout her ruhig - dort wird OnRender nicht aufgerufen.
Binde ich das Control in ein Test-Projekt ein, dann tritt dieser "Fehler" nicht auf. In dem richtigen Projekt ist dieses Control in einem komplexeren Layout angeordnet.

Frage: Hat jemand irgendeine klevere Idee wie ich herausfinden kann was die Aufrufe von ArrangeOverride und folgend OnRender verursacht?
Da die Aufrufe ja alle aus dem Dispatcher kommen, kann ich da leider kein Breakpoint setzen.
Könnte man vielleicht die Aufrufe irgendwie profilen?

Mich wundert auch das MeasureOverride nicht aufgerufen wird, was ja zu einem vollständigen Layoutprozess eigentlich dazugehört. Ich meine auch das InvalidateVisual dazu führt, dass das Layout vollständig neu berechnet wird, also MeasureOverride auch mit aufgerufen wird.

Liebe Grüße, Stu

5.658 Beiträge seit 2006
vor 6 Jahren

Hi Stu42,

wozu meinst du diese Methoden überschreiben zu müssen? Welches Problem möchtest du dadurch lösen? Warum reichen die die eingebauten Layout-Features von XAML nicht dafür aus?

Weeks of programming can save you hours of planning

S
Stu42 Themenstarter:in
506 Beiträge seit 2006
vor 6 Jahren

Hey! Das ist ein Graphen-Control, ich Layoute damit die verschieden Achsen, die Legende und Items im Graph. Hätte man sicherlich auch mit Grids machen können.

Es war übrigens doch ein InvalidateVisual von mir (ein untergeordnetes Graph-Element). Ein typische Fall von zuviel Kaffee und zu spät am Programmiertag.

Mich würde es aber schon noch Interessieren, ob man die Quelle von einem InvalidateVisual-Aufruf irgentwie herausbekommen kann.