#616 – Порядок возникновения события Initialized и Loaded для FrameworkElement

У всех элементов, которые наследуются (прямо или косвенно) от FrameworkElement возникают оба события Initialized и Loaded когда контрол загружается. Например, оба события Initialized и Loaded возникают для каждого контрола в вашем приложении, когда приложение загружается.

События Initialized, для всех контролов, возникают, начиная с низа логического дерева. Когда вы перехватываете событие Initialize для определенного элемента, то вы можете считать, что любой нижележащий элемент уже инициализирован.

Событие Loaded наоборот возникает с вершины логического дерева и распространяется вниз. События Loaded начинают возникать только после того как системный layout определил позицию и размер для каждого элемента в дереве. Так что в обработчике события Loaded вы можете считать, что все элементы в логическом дереве полностью настроены.

Оригинал: #616 – FrameworkElement.Initialized and Loaded Event Order

02.08.2012

#615 – Стандартные события жизненного цикла объекта FrameworkElement

Все объекты в WPF, которые наследуются от FrameworkElement или FrameworkContentElement имеют три основных события которые возникают в течении жизненного цикла элемента. Так как эти события наследуются от FrameworkElement или FrameworkContentElement, они доступны для всех контролов, layout панелей, объектов Window и объектов Page.

Три главных события жизненного цикла объекта:

  • Initialized – Возникает, когда объект был создан и все свойства установлены. Свойства, относящиеся к layout еще не были установлены
  • Loaded – Возникает после того как системный layout рассчитал все свойства относящиеся layout. Привязка данных уже случилась к этому моменту, поэтому контрол получил свои последние значения свойств.
  • Unloaded – Возникает, когда элемент удаляется из логического дерева. Не возникает при закрытии приложения.

Оригинал: #615 – Standard Object Lifetime Events for FrameworkElement Objects

01.08.2012

#426 – Панели разметки имеют поля отступа

Обычно установка полей отступа элементов содержащихся внутри панели разметки делается для создания пустого пространства между различными элементами и созданием пустого пространства между элементом и краями панели.

Вот окно, содержащее Grid (бежевый фон), который содержит несколько контролов. Без установке полей отступа.

Читать полностью »

10.11.2011

#386 – Разметка = Панели + FrameworkElements + Alignment/Margins/Padding

Разметка в WPF это процесс, который определяет размер и позиции всех элементов пользовательского интерфейса.

Пользовательский интерфейс состоит из внешнего Window или Page которые содержат иерархию элементов пользовательского интерфейса. Иерархия может содержать личные элементы пользовательского интерфейса или панели, которые по очереди содержат коллекцию дочерних FrameworkElements.

Panel это абстрактный класс, который служит родительским для конкретных панелей разметки, включая Canvas, DockPanel, Grid, StackPanel и WrapPanel.

Читать полностью »

14.09.2011

#32 – Класс FrameworkElement

FrameworkElement класс наследуется от UIElement и, в свою очередь родительский класс для всех элементов управления в WPF.

FrameworkElement основывается на UIElement и добавляет следующую функциональность:

  • Layout – реализует макет модели путем реализации свойства, таких как HorizontalAlignment, MinWidth и Margin
  • Поддержка анимации с помощью метода BeginStoryboard
  • Привязка данных
  • Шаблоны данных для привязки данных
  • Стили

FrameworkElement является также основным базовым классом для объектов, которые будут добавлены к логическому дереву (иерархия визуальных объектов, которые составляют пользовательский интерфейс).

Оригинал: #32 – FrameworkElement

13.08.2010