2010-11-17 4 views
5

Viele Male habe ich gesehen, dass der Code in MeasureOverride und ArrangeOverride gleichen Ausnahmen Calling Measure und ordnen Sie entsprechende Methoden und ein bisschen zusätzliche Logik wie Animation usw. für jedes Element in ArrangeOverride.Zwei-Durchlauf-Layout-System in WPF und Silverlight

Wäre es nicht einfach, wenn Sie nur eine Methode haben, Ihre Logik der Messung an einer Stelle zu übergeben und Layout-System merkt sich das und ein Ereignis, wenn jedes Element hinzugefügt wird und Sie die zusätzliche Logik der Animation usw. anwenden?

Fehle ich etwas?

Antwort

9

Ja, Sie vermissen den feinen Unterschied zwischen den beiden.

In MeasureOverride, die Mutter fragt das Kind, wie groß es sein will.

In ArrangeOverride, die Mutter sagt das Kind, wie viel Platz es hat eigentlich und wo es platziert wird.

Es ist wie Budget oder Review Zeit bei Ihrer Arbeit: Ihr Chef fragt Sie, wie viel Geld Sie wollen, dann lacht und sagt Ihnen, wie viel Sie tatsächlich bekommen und wann. Wie bei der Kinderkontrolle müssen Sie dann Ihr Bestes geben mit dem, was Ihnen gegeben wird.

Um dies zu verdeutlichen, ist einer der Schlüsselpunkte von WPF die skalierbare Benutzeroberfläche. Ähnlich wie bei dem obigen Szenario von Chef/Mitarbeiter müssen die Bedürfnisse der Eltern/Kind-Kontrolle im Gleichgewicht gehalten werden. Nur weil ein Kind Kontrolle Anfragen eine bestimmte Größe, bedeutet das nicht, dass die Elternkontrolle hat diesen Raum zu geben, so dass das Kind mitgeteilt werden muss. OTOH, mit der zunehmenden Größe von Monitoren kann Ihr Kind mit erheblich mehr Immobilien als das, was es wirklich benötigt, enden.

Verwandte Themen