Обновите размер окна и поля сетки одновременно - PullRequest
0 голосов
/ 10 октября 2018

У меня есть пользовательское стилизованное окно wpf (без полей).У меня проблемы с пользовательской анимацией окна, проблема сводится к тому, что при установке размера окна и поля сетки (родительского элемента для всех элементов управления в окне) они всегда обновляются отдельно, либо сетка сначала изменит свой край, а затемокно изменит свой размер или наоборот (вызывая очень заметное мерцание).Есть ли способ остановить рисование окна до полного обновления сетки?или как-то иначе заставить их обновляться одновременно?

Вот код пост анимации (все до этого момента без шва), хотя я не думаю, что это будет очень полезно.

GridBackground.Margin = new Thickness(0, 0, 0, 0);
this.Width = NormalWindowSize.Width;
this.Height = NormalWindowSize.Height;
this.Top = NormalWindowSize.Top;
this.Left = NormalWindowSize.Left;

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

1 Ответ

0 голосов
/ 10 октября 2018

Вы пытались изменить размер окна с помощью диспетчера?

GridBackground.Margin = new Thickness(0, 0, 0, 0);
Dispatcher.BeginInvoke(new Action(() => 
{
    this.Width = NormalWindowSize.Width;
    this.Height = NormalWindowSize.Height;
    this.Top = NormalWindowSize.Top;
    this.Left = NormalWindowSize.Left;
}), DispatcherPriority.ApplicationIdle);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...