CloneCore, méthode
Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais

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.

This example shows how to use the Clone method to create a writable copy of a read-only Freezable.

After a Freezable object is marked as read-only ("frozen"), you cannot modify it. However, you can use the Clone method to create a modifiable clone of the frozen object.

The following example creates a modifiable clone of a frozen SolidColorBrush object.


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;


For more information about Freezable objects, see the Vue d'ensemble des objets Freezable.

.NET Framework

Pris en charge dans : 4, 3.5, 3.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

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:
© 2016 Microsoft