UIElement.Measure(Size) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Aktualizuje element DesiredSize .UIElement Elementy nadrzędne nazywają tę metodę z własnych MeasureCore(Size) implementacji w celu utworzenia aktualizacji układu cyklicznego. Wywołanie tej metody stanowi pierwsze przekazanie (przekazywanie "Miara") aktualizacji układu.
public:
void Measure(System::Windows::Size availableSize);
public void Measure (System.Windows.Size availableSize);
member this.Measure : System.Windows.Size -> unit
Public Sub Measure (availableSize As Size)
Parametry
- availableSize
- Size
Dostępne miejsce, które element nadrzędny może przydzielić element podrzędny. Element podrzędny może zażądać większego miejsca niż to, co jest dostępne; podany rozmiar może być uwzględniony, jeśli przewijanie jest możliwe w modelu zawartości dla bieżącego elementu.
Uwagi
Obliczanie pozycjonowania układu w Windows Presentation Foundation (WPF) składa się z Measure wywołania i wywołaniaArrange. Podczas wywołania element określa jego wymagania dotyczące rozmiaru Measure przy użyciu danych wejściowych availableSize
. Podczas wywołania Arrange rozmiar elementu jest finalizowany.
availableSize
może być dowolną liczbą z zakresu od zera do nieskończonej. Elementy biorące udział w układzie powinny zwrócić wartość minimalną Size wymaganą dla danego availableSize
elementu .
Gdy układ jest najpierw tworzone, zawsze odbiera wywołanie Measure przed Arrange. Jednak po pierwszym przekazaniu układu może odbierać Arrange wywołanie bez Measure. Może się to zdarzyć, gdy właściwość, która ma wpływ tylko Arrange na zmianę (na przykład wyrównanie) lub gdy obiekt nadrzędny otrzyma obiekt Arrange bez Measure. Wywołanie Measure spowoduje automatyczne unieważnienie wywołania Arrange .
Aktualizacje układu są wykonywane asynchronicznie, tak aby główny wątek nie czekał na każdą możliwą zmianę układu. Wykonywanie zapytań względem elementu za pomocą sprawdzania wartości właściwości za pomocą kodu może nie odzwierciedlać natychmiast zmian właściwości, które wchodzą w interakcję z właściwościami ustalania rozmiaru lub układu ( Width na przykład właściwości).
Uwaga
Aktualizacje układu można wymusić za pomocą UpdateLayout metody . Jednak wywoływanie tej metody jest zwykle niepotrzebne i może spowodować niską wydajność.
System układu przechowuje dwie oddzielne kolejki nieprawidłowych układów: jeden dla Measure i jeden dla Arrange. Kolejka układu jest sortowana na podstawie kolejności elementów w drzewie wizualnym elementu wykonującego układ; elementy wyższe w drzewie znajdują się w górnej części kolejki, aby uniknąć nadmiarowych układów spowodowanych powtarzającymi się zmianami w elementach nadrzędnych. Zduplikowane wpisy są automatycznie usuwane z kolejki, a elementy są automatycznie usuwane z kolejki, jeśli zostały już zweryfikowane w układzie.
Podczas aktualizowania układu kolejka Measure jest najpierw opróżniona, a następnie kolejka Arrange . Element w Arrange kolejce nigdy nie zostanie rozmieszczony, jeśli w Measure kolejce znajduje się element.