Управление WPF: где виртуальная функция OnLoaded?

В элементе управления WinForm существует виртуальная функция OnLoaded, но в управлении WPF это, похоже, отсутствует. Я нашел эту функцию очень полезной в некоторых ситуациях. Например, я мог бы сделать что-то здесь после того, как элемент управления полностью инициализирован. В элементе управления WPF существует виртуальная функция OnInitialized, но эта функция вызывается из функции InitializeComponent, которая слишком ранняя, и она не позволяет устанавливать производный класс. Есть ли причина не иметь эту функцию в WPF? Или я ничего не пропустил?

Ответ 1

Вы можете присоединить к событию Loaded вашего объекта Window и выполнить то, что вы хотите сделать внутри обработчика событий (при условии, что вы используете С#):

public MyWindow() //constructor
{
  this.Loaded += MyWindow_Loaded;
}

private void MyWindow_Loaded(object sender, RoutedEventArgs e)
{
  // do your stuff here
}

Ответ 2

вы будете искать FrameworkElement.EndInit()

Это будет работать после процесса инициализации элемента...