WinUI 3 1.0: событие готовности окнаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 WinUI 3 1.0: событие готовности окна

Сообщение Anonymous »

Я пытаюсь выполнить код, когда окно готово.
В частности, я пытаюсь развернуть окно до максимума. Проблема в том, что я не могу запустить этот код синхронно после InitializeComponent, потому что это слишком рано (окно еще не готово/загружено/не показано, поэтому установка Presenter не имеет никакого эффекта)
Проблема в том, что событие Window.Loaded не отображается в WinUI 3 (версия 1.0).
Итак, вот мой текущий хак. В конструкторе (после InitializeComponent) я подключаюсь к одному из единственных событий, предоставляемых WinUI 3, Activated

Код: Выделить всё

Activated += MainWindow_Activated_FirstTime;
Проблема в том, что это срабатывает практически каждый раз, когда окно находится в фокусе. Итак, обходной путь: я просто удаляю обработчик событий внутри обработчика событий

Код: Выделить всё

private void MainWindow_Activated_FirstTime(object sender, WindowActivatedEventArgs args)
{
SetupWindow();
Activated -= MainWindow_Activated_FirstTime;
}
(

Код: Выделить всё

SetupWindow
устанавливает ведущего окна)
Как я уже сказал, это работает, но я думаю, что это довольно хакерски. Мне было интересно, есть ли правильный способ подключиться к Loaded или, возможно, к какому-либо эквивалентному событию, например Ready или Rendered. Мне действительно все равно, чем я увлекаюсь, лишь бы это было лучше этого.

Подробнее здесь: https://stackoverflow.com/questions/711 ... eady-event
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»