Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
CloneCore, méthode
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Freezable.CloneCore, méthode

Convertit l'instance en clone (copie complète) du Freezable spécifié à l'aide des valeurs de propriétés (non-animées) de base.

Espace de noms :  System.Windows
Assembly :  WindowsBase (dans WindowsBase.dll)

protected virtual void CloneCore(
	Freezable sourceFreezable
)

Paramètres

sourceFreezable
Type : System.Windows.Freezable
Objet à cloner.

Cette méthode est appelée par la méthode Clone et ne doit pas être appelée directement à partir de votre code, excepté lorsque vous appelez l'implémentation de base lors de la substitution de cette méthode. Pour créer une copie modifiable de l'objet en cours, appelez la méthode Clone au lieu d'appeler directement cette méthode.

Remarques à l'attention des héritiers

Si vous dérivez de Freezable, vous pouvez avoir besoin de substituer cette méthode. La substitution peut être due aux raisons suivantes :

  • Votre classe dérivée contient des données qui ne sont pas exposées via les propriétés de dépendance.

  • Votre classe dérivée doit effectuer une initialisation supplémentaire qui ne peut pas être exécutée en substituant simplement CreateInstanceCore. Par exemple, cela s'applique si votre classe dérivée implémente ISupportInitialize.

Les classes qui stockent toutes leurs données dans des propriétés de dépendance et qui ne requièrent pas d'initialisation supplémentaire n'ont pas besoin de substituer CloneCore.

Il est essentiel que toutes les implémentations appellent l'implémentation de base de cette méthode. Les implémentations doivent uniquement réaliser les activités non traitées par l'implémentation par défaut. L'implémentation par défaut effectue des copies complètes des propriétés accessibles en écriture définies localement, y compris des expressions internes.

Si l'objet a des propriétés de dépendance liées aux données, les expressions sont copiées mais risquent de ne plus pouvoir se résoudre. Pour plus d'informations sur les objets liés aux données de clonage, consultez Vue d'ensemble des objets Freezable. Si l'objet comporte des propriétés de dépendance animées, la valeur de base (non-animée) de ces propriétés est copiée. Les animations ne sont pas copiées.

Notez que ni les propriétés non définies, ni les propriétés en lecture seule ne sont copiées. Si l'une de ces propriétés a une valeur par défaut qui est un Freezable figé, cette valeur de propriété reste figée dans le clone modifiable.

La liste suivante récapitule le comportement attendu pour cette méthode :

  • La copie générée contient des copies de tous les sous-objets Freezable.

  • Les propriétés non définies et en lecture seule ne sont pas copiées.

  • Les expressions sont copiées.

  • Aucun de ces sous-objets n'est figé à la création.

  • La copie elle-même n'est pas figée.

  • Les animations ne sont pas copiées.

  • Seules les valeurs de propriétés de base sont copiées, pas les valeurs animées actuelles.

Cet exemple montre comment utiliser la méthode Clone pour créer une copie en écriture d'un Freezable en lecture seule.

Une fois qu'un objet Freezable est marqué en lecture seule (« figé »), vous ne pouvez pas le modifier. Toutefois, vous pouvez utiliser la méthode Clone pour créer un clone modifiable de l'objet figé.

L'exemple suivant crée un clone modifiable d'un objet SolidColorBrush figé.


Button myButton = new Button();
SolidColorBrush myBrush = new SolidColorBrush(Colors.Yellow);

// Freezing a Freezable before it provides
// performance improvements if you don't
// intend on modifying it. 
if (myBrush.CanFreeze)
{
    // Makes the brush unmodifiable.
    myBrush.Freeze();
}


myButton.Background = myBrush;  

// If you need to modify a frozen brush,
// the Clone method can be used to
// create a modifiable copy.
SolidColorBrush myBrushClone = myBrush.Clone();

// Changing myBrushClone does not change
// the color of myButton, because its
// background is still set by myBrush.
myBrushClone.Color = Colors.Red;

// Replacing myBrush with myBrushClone
// makes the button change to red.
myButton.Background = myBrushClone;


Pour plus d'informations sur les objets Freezable, consultez Vue d'ensemble des objets Freezable.

.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft