Но событие Loaded может содержать необходимую информацию. Из MSDN: событие Loaded вызывается до окончательного рендеринга, но после того, как система макета рассчитала все необходимые значения для рендеринга. Загруженный влечет за собой, что логическое дерево, в котором содержится элемент, является полным, и соединяется с источником представления, который обеспечивает HWND и поверхность рендеринга. Моя интерпретация состоит в том, что фильтры и триггеры были обработаны, но я не уверен. Unloaded не является окончательным числом, но я думаю, вы бы сравнили яблоки с яблоками. Но все же яблоки не могут быть правильным сравнением. Было бы так здорово, если бы отладчик прошел XAML. Поскольку отладчик не проходит XAML, я просто не думаю, что вы можете непосредственно измерить триггер. Лучшая надежда - измерить страницу. Создайте страницу без сложного фильтра.
public MainWindow()
{
Debug.WriteLine(DateTime.Now.ToLongTimeString());
InitializeComponent();
Debug.WriteLine(DateTime.Now.ToLongTimeString());
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
Debug.WriteLine(DateTime.Now.ToLongTimeString());
Отладка - это не то же самое, что прямое выполнение, поэтому я бы связал эти 3 раза с TextBlocks. И я бы также сравнил с фильтром, определенным в XAML. Я чувствую, что оба будут настолько быстрыми, что трудно понять разницу, но я предполагаю, что фильтр работает быстрее.