Проблема с рендерингом WPF - PullRequest
0 голосов
/ 04 августа 2020

У меня есть приложение wpf, которое использует переходы для анимации. На моем главном экране есть такой элемент:

<transitionalsControls:TransitionElement Name="DisplayPage" Width="1024" Height="768">
  <transitionalsControls:TransitionElement.Transition>
    <transitionalsTransitions:RotateTransition Duration="0:0:0.5" Angle="90" />
  </transitionalsControls:TransitionElement.Transition>
</transitionalsControls:TransitionElement>

В первый раз, когда я делаю

DisplayPage.Content = someUserControl;

, я получаю долгую задержку рендеринга. Иногда составляет полсекунды, иногда в пределах 5 секунд. Когда я смотрю на это в «Diagnoti c Tools», «Память процесса» увеличивается со временем, пока я не установил someUserControl. Когда я это делаю, он останавливается на время возникновения проблемы с рендерингом. Когда он, наконец, dr aws, полоса памяти процесса возобновляется и появляется желтая галочка, где произошла задержка, указывающая на сборку мусора. Когда я его проверяю, это невынужденная сборка мусора Gen 1, а продолжительность составляет всего несколько миллисекунд.

Я удалил все, кроме нескольких меток, и проблема все еще сохраняется.

Это задержка рендеринга сборку мусора, и если да, то как мне это обойти? Это в основном при запуске приложения и выглядит ужасно. После этого приложение работает нормально.

Есть идеи? Я перепробовал все, что мог придумать, чтобы заставить G C отойти от проблемы, но ничего не изменилось.

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