Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

Freezable.CloneCore (Método)

Crea la instancia un clon (copia profunda) de Freezable especificado utilizando valores de propiedad (no-animados) base.

Espacio de nombres:  System.Windows
Ensamblado:  WindowsBase (en WindowsBase.dll)
protected virtual void CloneCore(
	Freezable sourceFreezable
)

Parámetros

sourceFreezable
Tipo: System.Windows.Freezable
El objeto al clon.

Este método llama al método de Clone y no se debe llamar directamente desde el código, excepto al llamar a la implementación base mientras se reemplaza este método. Para crear una copia modificable del objeto actual, llame a Clone en lugar de llamar a este método directamente.

Notas para los herederos

Si deriva de Freezable, puede necesitar reemplazar este método. Razones para reemplazar incluyen lo siguiente:

  • La clase derivada tiene datos que no se expone a través de propiedades de dependencia.

  • La clase derivada debe realizar el trabajo adicional de inicialización que no se realizó simplemente invalidando CreateInstanceCore. Por ejemplo, esto se aplica si la clase derivada implementa ISupportInitialize.

Las clases que almacenan todos los datos en propiedades de dependencia y que no necesitan realizar el trabajo adicional de inicialización no necesitan reemplazar CloneCore.

Es esencial que todas las implementaciones llama a la implementación base de este método. Las implementaciones deben realizar solo el trabajo que no realiza la implementación predeterminada. La implementación predeterminada hace copia en profundidad de todo programable, localmente establece propiedades, incluidas las expresiones internas.

Si el objeto dato-ha enlazado propiedades de dependencia, las expresiones se copian pero pueden satisfacer ya no. Para obtener más información sobre los objetos enlazados clonación, vea Información general sobre objetos Freezable. Si el objeto ha animado propiedades de dependencia, el valor (no animado) base de esas propiedades se copia. las animaciones no se copian.

Observe que las propiedades sin establecer no se copian, ni son las propiedades de solo lectura. Si esta propiedad tiene un valor predeterminado que es Freezableinmovilizado, ese valor de propiedad sigue siendo inmovilizado en el clon de otra manera modificable.

La siguiente lista resume el comportamiento esperado para este método:

  • La copia que contiene copias de todos los subobjetos de Freezable .

  • Las propiedades sin establecer y de solo lectura no se copian.

  • se copian las expresiones.

  • No se inmoviliza ninguno de estos subobjetos en creación.

  • La copia en sí no se inmoviliza.

  • las animaciones no se copian.

  • Sólo se copian los valores base de propiedad, los valores animados no actuales.

En este ejemplo se muestra cómo utilizar el método Clone para crear una copia para escritura de un objeto Freezablede sólo lectura.

Una vez que un objeto Freezable se marca como de sólo lectura ("inmovilizado"), no es posible modificarlo. Sin embargo, es posible utilizar el método Clone para crear un clon modificable del objeto inmovilizado.

En el ejemplo siguiente se crea un clon modificable de un objeto SolidColorBrush inmovilizado.


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;


Para obtener más información acerca de los objetos Freezable, vea Información general sobre objetos Freezable.

.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
¿Te ha resultado útil?
(Caracteres restantes: 1500)

Adiciones de comunidad

AGREGAR
© 2013 Microsoft. Reservados todos los derechos.