| File: Shapes\SkewTransform.cs | Web Access |
| Project: src\src\Controls\src\Core\Controls.Core.csproj (Microsoft.Maui.Controls) |
#nullable disable using System; namespace Microsoft.Maui.Controls.Shapes { /// <include file="../../../docs/Microsoft.Maui.Controls.Shapes/SkewTransform.xml" path="Type[@FullName='Microsoft.Maui.Controls.Shapes.SkewTransform']/Docs/*" /> public class SkewTransform : Transform { /// <include file="../../../docs/Microsoft.Maui.Controls.Shapes/SkewTransform.xml" path="//Member[@MemberName='.ctor'][1]/Docs/*" /> public SkewTransform() { } /// <include file="../../../docs/Microsoft.Maui.Controls.Shapes/SkewTransform.xml" path="//Member[@MemberName='.ctor'][2]/Docs/*" /> public SkewTransform(double angleX, double angleY) { AngleX = angleX; AngleY = angleY; } /// <include file="../../../docs/Microsoft.Maui.Controls.Shapes/SkewTransform.xml" path="//Member[@MemberName='.ctor'][3]/Docs/*" /> public SkewTransform(double angleX, double angleY, double centerX, double centerY) { AngleX = angleX; AngleY = angleY; CenterX = centerX; CenterY = centerY; } /// <summary>Bindable property for <see cref="AngleX"/>.</summary> public static readonly BindableProperty AngleXProperty = BindableProperty.Create(nameof(AngleX), typeof(double), typeof(SkewTransform), 0.0, propertyChanged: OnTransformPropertyChanged); /// <summary>Bindable property for <see cref="AngleY"/>.</summary> public static readonly BindableProperty AngleYProperty = BindableProperty.Create(nameof(AngleY), typeof(double), typeof(SkewTransform), 0.0, propertyChanged: OnTransformPropertyChanged); /// <summary>Bindable property for <see cref="CenterX"/>.</summary> public static readonly BindableProperty CenterXProperty = BindableProperty.Create(nameof(CenterX), typeof(double), typeof(SkewTransform), 0.0, propertyChanged: OnTransformPropertyChanged); /// <summary>Bindable property for <see cref="CenterY"/>.</summary> public static readonly BindableProperty CenterYProperty = BindableProperty.Create(nameof(CenterY), typeof(double), typeof(SkewTransform), 0.0, propertyChanged: OnTransformPropertyChanged); /// <include file="../../../docs/Microsoft.Maui.Controls.Shapes/SkewTransform.xml" path="//Member[@MemberName='AngleX']/Docs/*" /> public double AngleX { set { SetValue(AngleXProperty, value); } get { return (double)GetValue(AngleXProperty); } } /// <include file="../../../docs/Microsoft.Maui.Controls.Shapes/SkewTransform.xml" path="//Member[@MemberName='AngleY']/Docs/*" /> public double AngleY { set { SetValue(AngleYProperty, value); } get { return (double)GetValue(AngleYProperty); } } /// <include file="../../../docs/Microsoft.Maui.Controls.Shapes/SkewTransform.xml" path="//Member[@MemberName='CenterX']/Docs/*" /> public double CenterX { set { SetValue(CenterXProperty, value); } get { return (double)GetValue(CenterXProperty); } } /// <include file="../../../docs/Microsoft.Maui.Controls.Shapes/SkewTransform.xml" path="//Member[@MemberName='CenterY']/Docs/*" /> public double CenterY { set { SetValue(CenterYProperty, value); } get { return (double)GetValue(CenterYProperty); } } static void OnTransformPropertyChanged(BindableObject bindable, object oldValue, object newValue) { (bindable as SkewTransform).OnTransformPropertyChanged(); } void OnTransformPropertyChanged() { double radiansX = Math.PI * AngleX / 180; double radiansY = Math.PI * AngleY / 180; double tanX = Math.Tan(radiansX); double tanY = Math.Tan(radiansY); Value = new Matrix(1, tanY, tanX, 1, -CenterY * tanX, -CenterX * tanY); } } }