UWP не синхронизирует видимость при рендеринге png - PullRequest
0 голосов
/ 03 мая 2020

Хорошо. В моем классе есть метод asyn c, который просто сохраняет все содержимое панели стека в файл PNG. Поэтому я придерживаюсь некоторых логик c, показанных ниже:

  • Экспорт панели стека png
  • Скрыть некоторые метки и отобразить другие
  • Повторный экспорт панели стека

Все это внутри моего метода, но у меня проблемы с этой видимостью. После скрытия / показа (visibility = Visibility.Collapsed) кажется, что видимость не изменяется во времени для рендеринга на png. Таким образом, делая это выше, ярлыки иногда отображаются, а иногда нет при последнем экспорте. Но если я поставлю некоторую задержку между ними, это сработает:

  • Экспорт панели стека png
  • Скрыть некоторые метки и отобразить другие
  • await Task.Delay (1000 )
  • Снова экспортируйте панель стека

Так что я почти уверен, что после того, как я изменил видимость, уходит некоторое время на обновление самого интерфейса. Как я могу ждать изменений пользовательского интерфейса, чтобы я мог быть уверен, что мой второй экспорт будет выполнен только тогда, когда все будет готово?

Примечание. Все эти логики c находятся внутри одной функции asyn c, которая использует await для КАЖДОГО вызова asyn c внутри нее. Проблема на самом деле, когда я сделал обновления, такие как видимость, и попытался отрисовать файл png.

1 Ответ

0 голосов
/ 03 мая 2020

Визуальные изменения происходят в следующий раз, когда поток пользовательского интерфейса «тикает» - это не является немедленным. Самый простой способ дождаться следующего тика - это использовать Dispatcher.RunAsync(), который должен запланировать ваш код для следующего тика, и в этот момент Visibility изменится.

Будет визуальный «fla sh», когда пользователь увидит, что элементы пользовательского интерфейса исчезают, а затем снова появляются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...