Поделиться через


FrameworkElement.LayoutUpdated Событие

Определение

Происходит при изменении макета визуального дерева из-за изменения значения релевантных для макета свойств или другого действия, которое обновляет макет.

// Register
event_token LayoutUpdated(EventHandler<IInspectable> const& handler) const;

// Revoke with event_token
void LayoutUpdated(event_token const* cookie) const;

// Revoke with event_revoker
FrameworkElement::LayoutUpdated_revoker LayoutUpdated(auto_revoke_t, EventHandler<IInspectable> const& handler) const;
public event System.EventHandler<object> LayoutUpdated;
function onLayoutUpdated(eventArgs) { /* Your code */ }
frameworkElement.addEventListener("layoutupdated", onLayoutUpdated);
frameworkElement.removeEventListener("layoutupdated", onLayoutUpdated);
- or -
frameworkElement.onlayoutupdated = onLayoutUpdated;
Public Custom Event LayoutUpdated As EventHandler(Of Object) 
<frameworkElement LayoutUpdated="eventhandler"/>
 

Тип события

Комментарии

LayoutUpdated — это последнее событие времени существования объекта, которое происходит в последовательности загрузки XAML до того, как элемент управления будет готов к взаимодействию. LayoutUpdated Однако может также возникать во время выполнения в течение времени существования объекта по ряду причин: изменение свойства, изменение размера окна или запрос макета среды выполнения (UpdateLayout или измененный шаблон элемента управления). Событие LayoutUpdated возникает после возникновения всех событий SizeChanged в последовательности макета.

LayoutUpdated может возникать, когда объект, к которому прикреплен обработчик, не обязательно изменяет ничего в визуальном дереве под ним. Например, представьте контейнер макета, в котором есть два дочерних элемента, совместное пространство. Если первый объект изменяет свойство, которое принудительно создает новый макет, оба объекта срабают LayoutUpdated, так как второй объект может быть изменен, даже если его собственный дочерний макет не изменяется.

При обработке LayoutUpdatedне следует полагаться на значение отправителя . Для LayoutUpdatedзначение sender всегда nullравно , независимо от места присоединения обработчика. Это необходимо, чтобы обработчики не присваивали отправителю какое-либо значение, например подразумевая, что именно этот элемент активировал событие из визуального дерева. LayoutUpdated подразумевает, что что-то в общем визуальном дереве изменилось, и каждый конкретный объект в любом месте дерева имеет возможность обрабатывать это вхождение. Если вы знакомы с архитектурой API отрисовки более низкого уровня, можно приравнивать LayoutUpdated запуск к флагу "требуется перерисовка", который устанавливается как часть управляемой объектом логики отрисовки в сохраненном режиме.

Так как LayoutUpdated срабатывает во многих случаях и не всегда специфично для объекта, который фактически меняется, подумайте, подходит ли обработка события SizeChanged для вашего сценария.

Применяется к

См. также раздел