Bonjour à tous,
Je suis en train de travailler sur une application WPF 4 utilisant le multi-touch. En gros l'application est constituée d'usercontrols que l'on peut déplacer et qui se rajoute au fur et à mesure.
Le souci que j'ai est au niveau des performances de l'application : ca rame beaucoup trop (c'est le cpu qui prend un claque).
je me suis donc mis à la recherche de conseil pour optimiser un peu tout ca et je suis tombé sur le site de msdn ou il est dit :(http://msdn.microsoft.com/en-us/library/bb613542.aspx).Update Rather than Replace a RenderTransform
J'utilise beaucoup le rendertransform, malheureusement il ne donne pas d'exemple et je ne sais pas comment "updater" un rendertransform.
Je fais comme ceci pour l'instant :
J'ai aussi d'autres pistes pour les problèmes de performance :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 //je prends la matrix actuel de l'object Matrix rectsMatrix = ((MatrixTransform)birdy.RenderTransform).Matrix; //je calcul la nouvelle rectsMatrix = ManipulationsHelper.TranslateElement(birdy, e.DeltaManipulation.Translation.X, e.DeltaManipulation.Translation.Y, rectsMatrix); // je l'assigne birdy.RenderTransform = new MatrixTransform(rectsMatrix);
1/ Certain usercontrols ont été importés à partir d'illustrator et sont affreusement gros (plein de path). Est ce que cela peut avoir un impact très négatif sur les performances ?
2/ Il y a beaucoup de cast dans le code, j'utilise pas mal la métohde "T FindAncestor<T>(this UIElement obj)" qui permet de retrouver les éléments parent. Y a-t-il un moyen d'optimiser les cast lorsqu'ils sont nombreux ?
3/ Avez-vous des conseils en général pour éviter une trop grande consomation en cpu sur les applis WPF ? J'ai également commencé a créer un petit shoot'em up en silverlight et je suis confronté au même problème : je me sers du render transform et je ne peux pas afficher trop d'objet sinon le cpu craque ?!?
Les questions sont peut-être un peu générales et évasives, mais c'est vrai que je ne m'étais pas réellement intéressée à ce sujet vu que la plupart de mes projets restait jusqu'à présent assez simple.
Merci d'avance
Partager