Share via


CompositeTransform Class

Definition

Applies multiple transform operations to an object.

public ref class CompositeTransform sealed : Transform
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class CompositeTransform final : Transform
[Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class CompositeTransform : Transform
Public NotInheritable Class CompositeTransform
Inherits Transform
<CompositeTransform .../>
Inheritance
Object Platform::Object IInspectable DependencyObject GeneralTransform Transform CompositeTransform
Attributes

Examples

This example shows how to apply the same transforms to an object by using either a CompositeTransform or a TransformGroup.

<StackPanel Margin="50">
    <Canvas Background="Black" Width="200" Height="200">
        <Rectangle Height="100" Width="100" Fill="Red">
            <Rectangle.RenderTransform>

                <!-- This one line of markup is the equivalent of the entire
             TransformGroup block in the other Canvas below. -->
                <CompositeTransform SkewX="30" Rotation="45" ScaleX="0.8" ScaleY="0.8" />
            </Rectangle.RenderTransform>
        </Rectangle>
    </Canvas>

    <Canvas Margin="10" Background="Black" Width="200" Height="200">
        <Rectangle Height="100" Width="100" Fill="Red">
            <Rectangle.RenderTransform>
                <TransformGroup>

                    <!-- Note that you have to apply these transforms in 
                     a specific order to get the same effect as the
                     CompositeTransform. -->
                    <ScaleTransform ScaleX="0.8" ScaleY="0.8" />
                    <SkewTransform AngleX="30" />
                    <RotateTransform Angle="45" />
                </TransformGroup>
            </Rectangle.RenderTransform>
        </Rectangle>
    </Canvas>
</StackPanel>

Remarks

CompositeTransform applies multiple transforms in this order:

  1. Scale (ScaleX, ScaleY )
  2. Skew (SkewX, SkewY)
  3. Rotate (Rotation)
  4. Translate (TranslateX, TranslateY)

If you want to apply multiple transforms to an object in a different order, you can create a TransformGroup and insert the transforms in your intended order.

CompositeTransform uses the same center point (CenterX, CenterY) for all transformations. If you want to specify different center points per transform, use TransformGroup.

Constructors

CompositeTransform()

Initializes a new instance of the CompositeTransform class.

Properties

CenterX

Gets or sets the x-coordinate of the center point for all transforms specified by the CompositeTransform in device-independent pixel (DIP) relative to the upper left-hand corner of the element.

CenterXProperty

Identifies the CenterX dependency property.

CenterY

Gets or sets the y-coordinate of the center point for all transforms specified by the CompositeTransform in device-independent pixel (DIP) relative to the upper left-hand corner of the element.

CenterYProperty

Identifies the CenterY dependency property.

Dispatcher

Always returns null in a Windows App SDK app. Use DispatcherQueue instead.

(Inherited from DependencyObject)
DispatcherQueue

Gets the DispatcherQueue that this object is associated with. The DispatcherQueue represents a facility that can access the DependencyObject on the UI thread even if the code is initiated by a non-UI thread.

(Inherited from DependencyObject)
Inverse

Gets the inverse transformation of this GeneralTransform, if possible.

(Inherited from GeneralTransform)
InverseCore

Implements the behavior for return value of Inverse in a derived or custom GeneralTransform.

(Inherited from GeneralTransform)
Rotation

Gets or sets the angle, in degrees, of clockwise rotation.

RotationProperty

Identifies the Rotation dependency property.

ScaleX

Gets or sets the x-axis scale factor. You can use this property to stretch or shrink an object horizontally.

ScaleXProperty

Identifies the ScaleX dependency property.

ScaleY

Gets or sets the y-axis scale factor. You can use this property to stretch or shrink an object vertically.

ScaleYProperty

Identifies the ScaleY dependency property.

SkewX

Gets or sets the x-axis skew angle, which is measured in degrees counterclockwise from the y-axis. A skew transform can be useful for creating the illusion of three-dimensional depth in a two-dimensional object.

SkewXProperty

Identifies the SkewX dependency property.

SkewY

Gets or sets the y-axis skew angle, which is measured in degrees counterclockwise from the x-axis. A skew transform can be useful for creating the illusion of three-dimensional depth in a two-dimensional object.

SkewYProperty

Identifies the SkewY dependency property.

TranslateX

Gets or sets the distance to translate along the x-axis.

TranslateXProperty

Identifies the TranslateX dependency property.

TranslateY

Gets or sets the distance to translate (move) an object along the y-axis.

TranslateYProperty

Identifies the TranslateY dependency property.

Methods

ClearValue(DependencyProperty)

Clears the local value of a dependency property.

(Inherited from DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Returns any base value established for a dependency property, which would apply in cases where an animation is not active.

(Inherited from DependencyObject)
GetValue(DependencyProperty)

Returns the current effective value of a dependency property from a DependencyObject.

(Inherited from DependencyObject)
ReadLocalValue(DependencyProperty)

Returns the local value of a dependency property, if a local value is set.

(Inherited from DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registers a notification function for listening to changes to a specific DependencyProperty on this DependencyObject instance.

(Inherited from DependencyObject)
SetValue(DependencyProperty, Object)

Sets the local value of a dependency property on a DependencyObject.

(Inherited from DependencyObject)
TransformBounds(Rect)

Transforms the specified bounding box and returns an axis-aligned bounding box that is exactly large enough to contain it.

(Inherited from GeneralTransform)
TransformBoundsCore(Rect)

Provides the means to override the TransformBounds behavior in a derived transform class.

(Inherited from GeneralTransform)
TransformPoint(Point)

Uses this transformation object's logic to transform the specified point, and returns the result.

(Inherited from GeneralTransform)
TryTransform(Point, Point)

Attempts to transform the specified point and returns a value that indicates whether the transformation was successful.

(Inherited from GeneralTransform)
TryTransformCore(Point, Point)

Provides the means to override the TryTransform behavior in a derived transform class.

(Inherited from GeneralTransform)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Cancels a change notification that was previously registered by calling RegisterPropertyChangedCallback.

(Inherited from DependencyObject)

Applies to

See also