WPF France

  • Augmenter la taille
  • Taille par défaut
  • Diminuer la taille

Freezez vos brush depuis le XAML pour améliorer les performances

Envoyer Imprimer PDF
Note des utilisateurs: / 1
MauvaisTrès bien 
Le MSDN est très clair la dessus : freezer vos Brush (et tout les objets héritant de Freezable) améliore les performances de votre application.

C'est une chose des plus simples à faire dans le code, mais cela est moins évident lorsque l'on cherche à le faire directement dans le XAML.
Cette situation peut survenir lorsque vous travaillez avec un designer qui ne veut (peut ?) pas intervenir au niveau du code.

Dans cet article nous allons voir les différents moyens à notre portée.



Que sont les objets freezable ?

Voici la définition donnée par notre cher ami MSDN :
 Un Freezable est un type d'objet spécial qui possède deux états : figé et non figé. Quand il est non figé, un objet Freezable semble se comporter comme n'importe quel autre objet. Quand il est figé, un objet Freezable ne peut plus être modifié.

Un objet Freezable fournit un événement Changed pour signaler aux observateurs toute modification apportée à l'objet. Le fait de figer un objet Freezable peut améliorer sa performance, car il n'a plus besoin de consacrer des ressources aux notifications des modifications. Un objet figé Freezable peut également être partagé entre plusieurs threads, ce qui n'est pas le cas d'un objet non figé Freezable.

Les refroidir Laughing depuis le code

C'est une des choses les plus simple à faire. Une propriété nous indique si l'opération est possible : CanFreeze, après sa lecture, nous appelons directement la méthode Freeze :

if (monBrush.CanFreeze)
{
    // Et hop, on te refroidit
    monBrush.Freeze();
}


Et depuis le XAML

Il n'y a pas de propriété Freeze sur les objets Brush pour intervenir depuis le XAML. Heureusement, en rajoutant le namespace XML (magique) suivant, nous allons la faire apparaitre : http://schemas.microsoft.com/winfx/2006/xaml/presentation/options.

Son utilisation est alors la suivante :

 

C'est tout pour le moment !

(Article traduit de l'anglais depuis http://blog.lexique-du-net.com)

Commentaires (4)
Mise à jour le Samedi, 11 Juin 2011 22:50  

Partagez


Article au hasard

  • Cet article reprend la solution de tri automatique d’un GridView que j’avais publiée précédemment, en ajoutant une fonctionnalité mineure mais cependant importante pour l’utilisateur final : l’affichage d’un symbole pour indiquer selon quelle colonne la grille est triée, ainsi que la direction du tri. La solution proposée utilise un Adorner, un composant qui permet de « décorer » un contrôle WPF sur une couche séparée de l’affichage.


    Commentaires (0...
    Lire la suite...