J'ai un contrôle winforms dans un WindowsFormsHost sur un contrôle WPF. Le contrôle WPF n'est visible que de temps en temps, et lorsqu'il devient visible, le contenu du contrôle winforms a généralement changé.Comment repeindre un WinFormsHost quand il devient visible?
Lorsque le ViewModel pour le contrôle WPF change, je modifie le contenu du contrôle WinForms et le contrôle WPF devient visible.
Malheureusement, le contenu précédent du contrôle winforms est repeint, comme s'il provenait d'un cache visuel. Je l'ai exécuté dans le débogueur et je sais que le contrôle winforms met ses données à jour, mais il ne sera pas repeint jusqu'à ce que je redimensionne la fenêtre du programme (quand une repeinte est clairement déclenchée).
J'ai essayé Invalidate() sur le contrôle winforms et InvalidateVisual(), InvalidateArrange() et InvalidateMeasure() sur le contrôle WPF dans le gestionnaire d'événements DataContextChanged pour le contrôle WPF, mais il semble que parce que le contrôle WPF est pas visible à ce stade (il est sur le point de devenir visible) ces appels de méthode sont avalés.
Tout le monde a-t-il eu des idées astucieuses sur la façon de forcer une reprise d'un contrôle winFormsHost-ed winforms immédiatement après que le contrôle WPF hôte devient visible?
Non, mais j'ai maintenant et cela n'a pas fonctionné non plus.Je suppose que c'est le même problème que le gestionnaire IsVisibleChanged est appelé en réponse à la modification de la visibilité, mais avant qu'il ne change en fait –
Non, il est supposé être déclenché après que le contrôle devienne visible ou caché ... –