2010-09-06 5 views
1

J'utilise des composants de tierce partie qui prennent du temps (~ 3-5s) pour le rendu - après le profilage, je suis arrivé à la conclusion que la plupart du temps est gaspillée dans MeasureOverride et Render méthodes de ces contrôles ... Je ne peux pas éditer le code source de ces composants. Le problème est .. puis-je afficher un indicateur occupé alors que l'interface est en train d'être "dessinée"? Est-ce possible dans WPF?Indicateur occupé pendant une opération de dessin d'interface Wpf longue

Répondre

1

Non, vous ne pouvez pas, bien, pas dans le bon sens.

Le fil de l'interface utilisateur est un rendu occupé. Le dessin de l'indicateur occupé nécessite le même thread pour dessiner l'indicateur à la place. Maintenant, vous pouvez créer une seconde fenêtre (peut-être semi-transparente) à partir d'un autre thread et placer cette fenêtre au-dessus de votre fenêtre gelée, mais c'est très difficile à obtenir, vous devez gérer des choses comme l'utilisateur déplacer la fenêtre (et vous ne saurez jamais que la fenêtre a été déplacée car le thread qui accepte les notifications de déplacement est occupé) ou une autre application apparaît entre vos deux fenêtres

Ceci est également susceptible d'interférer avec le premier dessin de fenêtre et généralement juste a de nombreux cas de coin à jamais avoir raison.

Questions connexes