2017-10-20 54 views
-3

Je crée une application qui peut être remplie dynamiquement avec des contrôles, où les contrôles ItemsControl dans XAML se lient aux propriétés ObservableCollection <> dans la machine virtuelle. Mais quand je montre juste un seul contrôle horizontal Slider avec un style personnalisé, je constate que la performance (frame rate) lors de la manipulation du Slider diminue quand la fenêtre est en plein écran comparée à la plus petite possible. Le simple fait d'augmenter la taille de la fenêtre dans le sens vertical entraîne une baisse des performances. Pourquoi est-ce? Et puis-je faire quelque chose à ce sujet?WPF: Augmentation de la taille de la fenêtre diminue les performances

Voici une capture d'écran de la fenêtre avec un seul curseur:

enter image description here

EDIT: Le problème était lié à la carte graphique et non WPF. L'application fonctionnait sur un ordinateur avec son écran connecté à un réplicateur de port basé sur DisplayLink. Je n'étais pas conscient des faibles performances 2D de cette carte graphique par rapport à une carte graphique native.

+1

Il semble trivial que la performance diminue avec la taille de la pièce à repeindre. Il semble tout aussi trivial de proposer une meilleure carte graphique ou un processeur plus rapide pour augmenter les performances en général. Est-ce que la performance baisse plus que prévu? Pouvez-vous ajouter une description plus détaillée du problème? – nvoigt

+0

Combien ça fait tomber? Et voyez-vous une différence de performance entre votre curseur personnalisé et le curseur normal? – mnistic

+0

Avez-vous utilisé des effets? comme DropShadow ou Flou? Cela peut nuire aux performances lorsqu'elles sont ajoutées sur de grandes portions de l'interface utilisateur qui doivent être redessinées fréquemment. – Dmitry

Répondre

1

La performance diminue avec la taille de la pièce à repeindre. Évidemment, une meilleure carte graphique ou un processeur plus rapide augmentera les performances en général. Si les performances sont vraiment mauvaises, vérifiez votre système et assurez-vous que l'écran est bien un périphérique pris en charge par le matériel (par rapport à un ordinateur distant, un périphérique virtuel avec des pilotes non spécifiés ou tout ce que vous pouvez juste votre moniteur connecté avec un câble à votre carte graphique).