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 для вашего сценария.