TransformGroup (Clase) (System.Windows.Media)

Cambiar vista:
Sin script
Biblioteca de clases de .NET Framework
TransformGroup (Clase)
Este artículo se tradujo de forma manual. Para mostrar esta página y el contenido original en inglés al mismo tiempo, cambie a Lightweight según sus preferencias de visualización.

Representa un objeto Transform compuesto de otros objetos Transform.

Jerarquía de herencia

System.Object
  System.Windows.Threading.DispatcherObject
    System.Windows.DependencyObject
      System.Windows.Freezable
        System.Windows.Media.Animation.Animatable
          System.Windows.Media.GeneralTransform
            System.Windows.Media.Transform
              System.Windows.Media.TransformGroup

Espacio de nombres:  System.Windows.Media
Ensamblado:  PresentationCore (en PresentationCore.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
Sintaxis

Visual Basic
<ContentPropertyAttribute("Children")> _
Public NotInheritable Class TransformGroup _
	Inherits Transform
C#
[ContentPropertyAttribute("Children")]
public sealed class TransformGroup : Transform
Visual C++
[ContentPropertyAttribute(L"Children")]
public ref class TransformGroup sealed : public Transform
F#
[<Sealed>]
[<ContentPropertyAttribute("Children")>]
type TransformGroup =  
    class
        inherit Transform
    end
Uso de elementos de objeto XAML
<TransformGroup>
  Children
</TransformGroup>

El tipo TransformGroup expone los siguientes miembros.

Constructores

  Nombre Descripción
Método público TransformGroup Inicializa una nueva instancia de la clase TransformGroup.
Arriba
Propiedades

  Nombre Descripción
Propiedad pública CanFreeze Obtiene un valor que indica si el objeto se puede convertir en no modificable. (Se hereda de Freezable).
Propiedad pública Children Obtiene o establece la colección TransformCollection que define este objeto TransformGroup.
Propiedad pública DependencyObjectType Obtiene el objeto DependencyObjectType que ajusta el tipo CLR de esta instancia.  (Se hereda de DependencyObject).
Propiedad pública Dispatcher Obtiene el objeto Dispatcher al que está asociado DispatcherObject. (Se hereda de DispatcherObject).
Propiedad pública HasAnimatedProperties Obtiene un valor que indica si uno o más objetos AnimationClock se asocian a cualquiera de las propiedades de dependencia de este objeto. (Se hereda de Animatable).
Propiedad pública Inverse Obtiene la transformación inversa de esta transformación, si existe. (Se hereda de Transform).
Propiedad pública IsFrozen Obtiene un valor que indica si el objeto es modificable actualmente. (Se hereda de Freezable).
Propiedad pública IsSealed Obtiene un valor que indica si esta instancia está actualmente sellada (es de solo lectura). (Se hereda de DependencyObject).
Propiedad pública Value Obtiene la estructura Matrix que describe la transformación representada por este objeto TransformGroup. (Invalida a Transform.Value).
Arriba
Métodos

  Nombre Descripción
Método público ApplyAnimationClock(DependencyProperty, AnimationClock) Aplica un objeto AnimationClock al objeto DependencyProperty especificado. Si la propiedad ya está animada, se usa el comportamiento de entrega de SnapshotAndReplace. (Se hereda de Animatable).
Método público ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) Aplica un objeto AnimationClock al objeto DependencyProperty especificado. Si la propiedad ya está animada, se usa el objeto HandoffBehavior especificado. (Se hereda de Animatable).
Método público BeginAnimation(DependencyProperty, AnimationTimeline) Aplica una animación al objeto DependencyProperty especificado. La animación empieza cuando se representa el siguiente fotograma. Si la propiedad especificada ya está animada, se usa el comportamiento de entrega de SnapshotAndReplace. (Se hereda de Animatable).
Método público BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) Aplica una animación al objeto DependencyProperty especificado. La animación empieza cuando se representa el siguiente fotograma. Si la propiedad especificada ya está animada, se usa el objeto HandoffBehavior especificado. (Se hereda de Animatable).
Método público CheckAccess Determina si el subproceso de la llamada tiene acceso a DispatcherObject. (Se hereda de DispatcherObject).
Método público ClearValue(DependencyProperty) Borra el valor local de una propiedad. La propiedad que se va a borrar se especifica mediante un identificador de DependencyProperty. (Se hereda de DependencyObject).
Método público ClearValue(DependencyPropertyKey) Borra el valor local de una propiedad de sólo lectura. DependencyPropertyKey especifica la propiedad que se va a borrar. (Se hereda de DependencyObject).
Método público Clone Crea una copia modificable de este objeto TransformGroup y hace copias en profundidad de sus valores.
Método protegido CloneCore Convierte la instancia en un clon (copia en profundidad) de la clase Freezable especificada con los valores de la propiedad base (no animada). (Se hereda de Freezable).
Método público CloneCurrentValue Crea una copia modificable de este objeto TransformGroup y hace copias en profundidad de sus valores. Este método no copia referencias de recursos, enlaces de datos o animaciones, pero sí copia sus valores actuales.
Método protegido CloneCurrentValueCore Convierte la instancia en un clon modificable (en profundidad) del objeto Freezable especificado utilizando los valores de las propiedades actuales. (Se hereda de Freezable).
Método público CoerceValue Convierte el valor de la propiedad de dependencia especificada. Esto se logra invocando cualquier función de CoerceValueCallback especificada en los metadatos de la propiedad de dependencia cuando existe en el objeto DependencyObject de llamada. (Se hereda de DependencyObject).
Método protegido CreateInstance Inicializa una nueva instancia de la clase Freezable. (Se hereda de Freezable).
Método protegido CreateInstanceCore Cuando se implementa en una clase derivada, crea una nueva instancia de la clase Freezable derivada. (Se hereda de Freezable).
Método público Equals Determina si un objeto DependencyObject proporcionado es equivalente al objeto DependencyObject actual. (Se hereda de DependencyObject).
Método protegido Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público Freeze() Convierte el objeto actual en no modificable y establece su propiedad IsFrozen en true. (Se hereda de Freezable).
Método protegido FreezeCore Convierte este objeto Animatable en no modificable o determina si se puede convertir en no modificable. (Se hereda de Animatable).
Método público GetAnimationBaseValue Devuelve el valor no animado del objeto DependencyProperty especificado. (Se hereda de Animatable).
Método público GetAsFrozen Crea una copia inmovilizada de Freezable, con los valores de la propiedad base (no animada). Puesto que se inmoviliza la copia, se copia cualquier subobjeto inmovilizado por referencia. (Se hereda de Freezable).
Método protegido GetAsFrozenCore Convierte la instancia en un clon inmovilizado de la clase Freezable especificada con los valores de la propiedad base (no animada). (Se hereda de Freezable).
Método público GetCurrentValueAsFrozen Crea una copia inmovilizada de Freezable con los valores de propiedad actuales. Puesto que se inmoviliza la copia, se copia cualquier subobjeto inmovilizado por referencia. (Se hereda de Freezable).
Método protegido GetCurrentValueAsFrozenCore Convierte la instancia actual en un clon inmovilizado de la clase Freezable especificada. Si el objeto tiene propiedades de dependencia animadas, se copian sus valores animados actuales. (Se hereda de Freezable).
Método público GetHashCode Obtiene un código hash de este objeto DependencyObject. (Se hereda de DependencyObject).
Método público GetLocalValueEnumerator Crea un enumerador especializado para determinar qué propiedades de dependencia han establecido localmente los valores en DependencyObject. (Se hereda de DependencyObject).
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método público GetValue Devuelve el valor efectivo actual de una propiedad de dependencia en esta instancia de DependencyObject. (Se hereda de DependencyObject).
Método público InvalidateProperty Vuelve a evaluar el valor efectivo para la propiedad de dependencia especificada. (Se hereda de DependencyObject).
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método protegido OnChanged Se llama cuando se modifica el objeto Freezable actual. (Se hereda de Freezable).
Método protegido OnFreezablePropertyChanged(DependencyObject, DependencyObject) Se asegura de que se establecen los punteros contextuales adecuados para un miembro de datos DependencyObjectType que se acaba de establecer. (Se hereda de Freezable).
Método protegido OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) Este miembro admite la infraestructura de Windows Presentation Foundation (WPF) y no se debe usar directamente desde el código. (Se hereda de Freezable).
Método protegido OnPropertyChanged Invalida la implementación de DependencyObject de OnPropertyChanged para invocar también cualquier controlador Changed como respuesta a un cambio de propiedad de dependencia de tipo Freezable. (Se hereda de Freezable).
Método público ReadLocalValue Devuelve el valor local de una propiedad de dependencia, si existe. (Se hereda de DependencyObject).
Método protegido ReadPreamble Se asegura de que se tiene acceso a Freezable desde un subproceso válido. Los herederos de Freezable deben llamar a este método al inicio de las API que lean miembros de datos que no son propiedades de dependencia. (Se hereda de Freezable).
Método público SetCurrentValue Establece el valor de una propiedad de dependencia sin cambiar el origen de su valor. (Se hereda de DependencyObject).
Método público SetValue(DependencyProperty, Object) Establece el valor local de una propiedad de dependencia, especificado por su identificador de propiedad de dependencia. (Se hereda de DependencyObject).
Método público SetValue(DependencyPropertyKey, Object) Establece el valor local de una propiedad de dependencia de sólo lectura, especificado por el identificador DependencyPropertyKey de la propiedad de dependencia. (Se hereda de DependencyObject).
Método protegido ShouldSerializeProperty Devuelve un valor que indica si los procesos de serialización deben serializar el valor de la propiedad de dependencia proporcionada. (Se hereda de DependencyObject).
Método público ToString() Crea una representación de cadena de este objeto GeneralTransform. (Se hereda de GeneralTransform).
Método público ToString(IFormatProvider) Crea una representación de cadena de esta instancia, basándose en el parámetro IFormatProvider pasado. (Se hereda de GeneralTransform).
Método público Transform Transforma el punto especificado y devuelve el resultado. (Se hereda de GeneralTransform).
Método público TransformBounds Transforma el rectángulo de selección especificado y devuelve un rectángulo de selección alineado con el eje que es suficientemente grande como para contener la estructura. (Se hereda de Transform).
Método público TryTransform Intenta transformar el punto especificado y devuelve un valor que indica si la transformación se realizó correctamente. (Se hereda de Transform).
Método público VerifyAccess Exige que el subproceso de la llamada tenga acceso a DispatcherObject. (Se hereda de DispatcherObject).
Método protegido WritePostscript Provoca el evento Changed de Freezable e invoca su método OnChanged. Las clases que se derivan de Freezable deben llamar a este método al final de cualquier API que modifique miembros de clase que no se almacenen como propiedades de dependencia. (Se hereda de Freezable).
Método protegido WritePreamble Comprueba que no se inmovilice Freezable y que se tiene acceso desde un contexto de subproceso válido. Los herederos de Freezable deben llamar a este método al inicio de cualquier API que escriba en miembros de datos que no sean propiedades de dependencia. (Se hereda de Freezable).
Arriba
Eventos

  Nombre Descripción
Evento público Changed Se produce cuando se modifican la clase Freezable o un objeto que la contiene. (Se hereda de Freezable).
Arriba
Campos

  Nombre Descripción
Campo público Miembro estático ChildrenProperty Identifica la propiedad de dependencia Children.
Arriba
Implementaciones explícitas de interfaces

  Nombre Descripción
Implementación explícita de interfaces Método privado IFormattable.ToString Aplica formato al valor de la instancia actual utilizando el formato especificado. (Se hereda de GeneralTransform).
Arriba
Comentarios

Utilice TransformGroup cuando desee aplicar varios objetos Transform a una propiedad única.

En una transformación compuesta, es importante el orden de cada una de las transformaciones. Por ejemplo, si primero se gira, después se cambia el tamaño y después se traslada, el resultado será distinto que si primero se traslada, después se gira y después se cambia el tamaño. Una razón por la que el orden es importante es que las transformaciones como el giro y el cambio de tamaño se hacen en relación con el origen del sistema de coordenadas. Cambiar el tamaño de un objeto que está centrado en el origen tiene un resultado diferente a cambiar el tamaño de un objeto que se ha alejado del origen. De forma similar, girar un objeto que está centrado en el origen tiene un resultado diferente a girar un objeto que se ha alejado del origen.

Características de elementos Freezable: Como hereda de la clase Freezable, la clase TransformGroup proporciona varias características especiales: los objetos TransformGroup se pueden declarar como recursos, se pueden compartir entre varios objetos, se puede hacer que sean de sólo lectura para mejorar el rendimiento, se pueden clonar y se pueden hacer seguros para subprocesos. Para obtener más información acerca de las diferentes características que proporcionan los objetos Freezable, consulte Información general sobre objetos Freezable.

Ejemplos

This example shows how to use a TransformGroup to group two or more Transform objects into a single composite Transform.

The following example uses a TransformGroup to apply a ScaleTransform and a RotateTransform to a Button.

XAML

<Page 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
  <StackPanel Margin="50">

      <Button 
        RenderTransformOrigin="0.5,0.5"
        HorizontalAlignment="Center">Click
        <Button.RenderTransform>

          <!-- TransformGroup enables you to apply multiple transforms. In 
               this example, the button is scaled and rotated. -->
          <TransformGroup>

            <!-- Triple the size (scale) of the button in the Y direction. -->
            <ScaleTransform ScaleY="3" />

            <!-- Rotate the button by 45 degrees. -->
            <RotateTransform Angle="45" />

          </TransformGroup>
        </Button.RenderTransform>
      </Button>

  </StackPanel>
</Page>


Visual Basic


Imports System
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media

Namespace SDKSample
	Partial Public Class MultipleTransformsExample
		Inherits Page
		Public Sub New()
			' Create a Button that will have two transforms applied to it.
			Dim myButton As New Button()
			myButton.Content = "Click"

			' Set the center point of the transforms.
			myButton.RenderTransformOrigin = New Point(0.5,0.5)

			' Create a transform to scale the size of the button.
			Dim myScaleTransform As New ScaleTransform()

			' Set the transform to triple the scale in the Y direction.
			myScaleTransform.ScaleY = 3

			' Create a transform to rotate the button
			Dim myRotateTransform As New RotateTransform()

			' Set the rotation of the transform to 45 degrees.
			myRotateTransform.Angle = 45

			' Create a TransformGroup to contain the transforms
			' and add the transforms to it.
			Dim myTransformGroup As New TransformGroup()
			myTransformGroup.Children.Add(myScaleTransform)
			myTransformGroup.Children.Add(myRotateTransform)

			' Associate the transforms to the button.
			myButton.RenderTransform = myTransformGroup

			' Create a StackPanel which will contain the Button.
			Dim myStackPanel As New StackPanel()
			myStackPanel.Margin = New Thickness(50)
			myStackPanel.Children.Add(myButton)
			Me.Content = myStackPanel

		End Sub
	End Class
End Namespace


C#

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;

namespace SDKSample
{
    public partial class MultipleTransformsExample : Page
    {
        public MultipleTransformsExample()
        {
            // Create a Button that will have two transforms applied to it.
            Button myButton = new Button();
            myButton.Content = "Click";

            // Set the center point of the transforms.
            myButton.RenderTransformOrigin = new Point(0.5,0.5);

            // Create a transform to scale the size of the button.
            ScaleTransform myScaleTransform = new ScaleTransform();

            // Set the transform to triple the scale in the Y direction.
            myScaleTransform.ScaleY = 3;

            // Create a transform to rotate the button
            RotateTransform myRotateTransform = new RotateTransform();

            // Set the rotation of the transform to 45 degrees.
            myRotateTransform.Angle = 45;

            // Create a TransformGroup to contain the transforms
            // and add the transforms to it.
            TransformGroup myTransformGroup = new TransformGroup();
            myTransformGroup.Children.Add(myScaleTransform);
            myTransformGroup.Children.Add(myRotateTransform);

            // Associate the transforms to the button.
            myButton.RenderTransform = myTransformGroup;

            // Create a StackPanel which will contain the Button.
            StackPanel myStackPanel = new StackPanel();
            myStackPanel.Margin = new Thickness(50);
            myStackPanel.Children.Add(myButton);
            this.Content = myStackPanel;

        }
    }
}


Información de versión

.NET Framework

Compatible con: 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1
Plataformas

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.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.
Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Vea también

Referencia

Otros recursos