У меня есть ContentPresenter, который переключается между 2 состояниями («редактор» и «просмотрщик»).Состояния имеют разную высоту и разные значения свойств Content и ContentTemplate.
В одном изменении состояния я изменяю размер элемента управления, играя на раскадровке, и в ответ на событие Storyboard.Completed я изменяю свойства содержимого / шаблона.
Это работает в основном нормально, за исключением того, что я наблюдал случайное мерцание.Играя в отладчике, я заметил, что изменение указанных выше свойств в обработчике Completed может вызывать странные экранные эффекты (пустые участки экрана, дополнительные штриховки, линии и т. Д.), Которые пользователь видит как мерцающие.
Однако всякий раз, когда я откладывалContentPresenter изменяется с помощью Dispatcher.BeginInvoke (), проблемы, кажется, исчезают.(Требуется дополнительное тестирование.)
У кого-нибудь есть объяснение?В Интернете вы найдете множество примеров кода, которые выполняют изменения пользовательского интерфейса в обработчике Storyboard.Completed, поэтому я нахожу это немного странным.