Question

J'ai une application où, quand une personne tape ou sélectionne une zone de liste, il y a une partie de l'écran qui met à jour dynamiquement à une nouvelle vue.

Le problème est depuis WPF fonctionne tout en un seul fil l'affichage de la vue peut interférer avec la saisie ou la navigation rendant l'application moins sensibles. Ce que je voudrais faire est de lancer la partie de vue dans un autre thread.

Ma première pensée était d'utiliser une fenêtre en cours d'exécution sur un thread différent, mais plus que d'être quelque chose d'un hack il y a le problème de la fenêtre perdre de vue et d'être placé derrière la fenêtre principale lorsque la fenêtre principale est cliqué. Je pourrais le faire, mais je dois le plus élevé aussi placer d'autres fenêtres devant elle.

Alors, quelle est la meilleure façon d'y parvenir, puis-je placer la vue dans un cadre et l'exécuter dans un thread différent?

Pas de solution correcte

Autres conseils

Vous pouvez charger / générer les données dans un thread d'arrière-plan, puis mettre à jour l'interface utilisateur en utilisant Dispatcher.BeginInvoke .

Je vous propose d'utiliser la propriété de visibilité de cette pièce de l'écran que vous voulez faire apparaître et utiliser un déclencheur pour le mettre de Invisible ou Visible à chaque fois que Collapsed les types d'utilisateur ou SELECS. Vous pouvez également animer la propriété Opacité pour produire un effet frais ;-) fading Je vais ajouter un code pour illustrer ce point. EDIT: un temps BackgroundTask, comme les opérations de fichiers, peut être accompli en utilisant un

scroll top