2 changed files with 70 additions and 0 deletions
@ -0,0 +1,69 @@ |
|||
// Copyright (c) The Perspex Project. All rights reserved.
|
|||
// Licensed under the MIT license. See licence.md file in the project root for full license information.
|
|||
|
|||
using System; |
|||
|
|||
namespace Perspex.Media |
|||
{ |
|||
/// <summary>
|
|||
/// Scale an <see cref="IVisual"/>.
|
|||
/// </summary>
|
|||
public class ScaleTransform : Transform |
|||
{ |
|||
/// <summary>
|
|||
/// Defines the <see cref="ScaleX"/> property.
|
|||
/// </summary>
|
|||
public static readonly StyledProperty<double> ScaleXProperty = |
|||
PerspexProperty.Register<ScaleTransform, double>(nameof(ScaleX), 1); |
|||
|
|||
/// <summary>
|
|||
/// Defines the <see cref="ScaleY"/> property.
|
|||
/// </summary>
|
|||
public static readonly StyledProperty<double> ScaleYProperty = |
|||
PerspexProperty.Register<ScaleTransform, double>(nameof(ScaleY), 1); |
|||
|
|||
/// <summary>
|
|||
/// Initializes a new instance of the <see cref="ScaleTransform"/> class.
|
|||
/// </summary>
|
|||
public ScaleTransform() |
|||
{ |
|||
this.GetObservable(ScaleXProperty).Subscribe(_ => RaiseChanged()); |
|||
this.GetObservable(ScaleYProperty).Subscribe(_ => RaiseChanged()); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Initializes a new instance of the <see cref="ScaleTransform"/> class.
|
|||
/// </summary>
|
|||
/// <param name="scaleX">ScaleX</param>
|
|||
/// <param name="scaleY">ScaleY</param>
|
|||
public ScaleTransform(double scaleX, double scaleY) |
|||
: this() |
|||
{ |
|||
ScaleX = scaleX; |
|||
ScaleY = scaleY; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Gets or sets the ScaleX property.
|
|||
/// </summary>
|
|||
public double ScaleX |
|||
{ |
|||
get { return GetValue(ScaleXProperty); } |
|||
set { SetValue(ScaleXProperty, value); } |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Gets or sets the ScaleY property.
|
|||
/// </summary>
|
|||
public double ScaleY |
|||
{ |
|||
get { return GetValue(ScaleYProperty); } |
|||
set { SetValue(ScaleYProperty, value); } |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Gets the tranform's <see cref="Matrix"/>.
|
|||
/// </summary>
|
|||
public override Matrix Value => Matrix.CreateScale(ScaleX, ScaleY); |
|||
} |
|||
} |
|||
Loading…
Reference in new issue