public void Should_Generate_RotateTransform_minus_90_degrees() { using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); LayoutTransformControl lt = CreateWithChildAndMeasureAndTransform( 100, 25, new RotateTransform() { Angle = -90 }); Assert.NotNull(lt.TransformRoot.RenderTransform); var m = lt.TransformRoot.RenderTransform.Value; var res = Matrix.CreateRotation(Matrix.ToRadians(-90)); Assert.Equal(m.M11, res.M11, 3); Assert.Equal(m.M12, res.M12, 3); Assert.Equal(m.M21, res.M21, 3); Assert.Equal(m.M22, res.M22, 3); Assert.Equal(m.M31, res.M31, 3); Assert.Equal(m.M32, res.M32, 3); }
public void Should_Generate_SkewTransform_minus_45_degrees() { using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); LayoutTransformControl lt = CreateWithChildAndMeasureAndTransform( 100, 100, new SkewTransform() { AngleX = -45, AngleY = -45 }); Assert.NotNull(lt.TransformRoot.RenderTransform); Matrix m = lt.TransformRoot.RenderTransform.Value; Matrix res = Matrix.CreateSkew(Matrix.ToRadians(-45), Matrix.ToRadians(-45)); Assert.Equal(m.M11, res.M11, 3); Assert.Equal(m.M12, res.M12, 3); Assert.Equal(m.M21, res.M21, 3); Assert.Equal(m.M22, res.M22, 3); Assert.Equal(m.M31, res.M31, 3); Assert.Equal(m.M32, res.M32, 3); }
private void InitializeComponent() { AvaloniaXamlLoader.Load(this); LayoutTransformControl = this.FindControl <LayoutTransformControl>("LayoutTransformControl"); DataContextChanged += WhenDataContextChanged; ImagesOnBoard = new List <(Border, string)>(); }
private static LayoutTransformControl CreateWithChildAndMeasureAndTransform( double width, double height, Transform transform) { var lt = new LayoutTransformControl() { LayoutTransform = transform, Template = new FuncControlTemplate <LayoutTransformControl>( p => new ContentPresenter() { Content = p.Content }) }; lt.Content = new Rectangle() { Width = width, Height = height }; lt.ApplyTemplate(); //we need to force create visual child //so the measure after is correct (lt.Presenter as ContentPresenter).UpdateChild(); Assert.NotNull(lt.Presenter?.Child); lt.Measure(Size.Infinity); lt.Arrange(new Rect(lt.DesiredSize)); return(lt); }
private static void TransformRootBoundsTest(Size size, Transform transform, Rect expectedBounds) { LayoutTransformControl lt = CreateWithChildAndMeasureAndTransform(size.Width, size.Height, transform); Rect outBounds = lt.TransformRoot.Bounds; Assert.Equal(outBounds.X, expectedBounds.X); Assert.Equal(outBounds.Y, expectedBounds.Y); Assert.Equal(outBounds.Width, expectedBounds.Width); Assert.Equal(outBounds.Height, expectedBounds.Height); }
private static void TransformMeasureSizeTest(Size size, Transform transform, Size expectedSize) { LayoutTransformControl lt = CreateWithChildAndMeasureAndTransform( size.Width, size.Height, transform); Size outSize = lt.DesiredSize; Assert.Equal(outSize.Width, expectedSize.Width); Assert.Equal(outSize.Height, expectedSize.Height); }
public MainWindow() { InitializeComponent(); #if DEBUG this.AttachDevTools(); #endif _splitView = this.FindControl <SplitView>("SplitView"); _pinButton = this.FindControl <Button>("PinButton"); _pinTextBlock = this.FindControl <TextBlock>("PinTextBlock"); _layoutTransform = this.FindControl <LayoutTransformControl>("LayoutTransform"); _splitView.GetObservable(SplitView.IsPaneOpenProperty).Subscribe((isPaneOpen) => { if (_layoutTransform.LayoutTransform is RotateTransform rotateTransform) { rotateTransform.Angle = isPaneOpen ? 0 : 90; } }); _splitView.GetObservable(SplitView.DisplayModeProperty).Subscribe((displayMode) => { if (_splitView.DisplayMode == SplitViewDisplayMode.Inline) { _pinButton.Content = this.Resources["PinIcon"]; } else if (_splitView.DisplayMode == SplitViewDisplayMode.CompactOverlay) { _pinButton.Content = this.Resources["PinOffIcon"]; } }); _pinButton.Click += (sender, e) => { if (_splitView.DisplayMode == SplitViewDisplayMode.Inline) { _splitView.DisplayMode = SplitViewDisplayMode.CompactOverlay; _splitView.IsPaneOpen = false; } else if (_splitView.DisplayMode == SplitViewDisplayMode.CompactOverlay) { _splitView.DisplayMode = SplitViewDisplayMode.Inline; _splitView.IsPaneOpen = true; } }; _pinTextBlock.PointerPressed += (sender, e) => { if (_splitView.DisplayMode == SplitViewDisplayMode.CompactOverlay) { _splitView.IsPaneOpen = !_splitView.IsPaneOpen; } }; }
private static void TransformRootBoundsTest(Size size, Transform transform, Rect expectedBounds) { using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); LayoutTransformControl lt = CreateWithChildAndMeasureAndTransform(size.Width, size.Height, transform); Rect outBounds = lt.TransformRoot.Bounds; Assert.Equal(outBounds.X, expectedBounds.X); Assert.Equal(outBounds.Y, expectedBounds.Y); Assert.Equal(outBounds.Width, expectedBounds.Width); Assert.Equal(outBounds.Height, expectedBounds.Height); }
private static void TransformMeasureSizeTest(Size size, Transform transform, Size expectedSize) { using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); LayoutTransformControl lt = CreateWithChildAndMeasureAndTransform( size.Width, size.Height, transform); Size outSize = lt.DesiredSize; Assert.Equal(outSize.Width, expectedSize.Width); Assert.Equal(outSize.Height, expectedSize.Height); }
/// <summary> /// Instantiates a new instance of the DisplayAxis class. /// </summary> protected DisplayAxis() { OrientedPanel = new OrientedPanel(); #if SILVERLIGHT this.DefaultStyleKey = typeof(DisplayAxis); this.OrientedPanel.UseLayoutRounding = true; #endif TitleLayoutTransformControl = new LayoutTransformControl(); TitleLayoutTransformControl.HorizontalAlignment = HorizontalAlignment.Center; TitleLayoutTransformControl.VerticalAlignment = VerticalAlignment.Center; SizeChanged += DisplayAxisSizeChanged; }
private static LayoutTransformControl CreateWithChildAndMeasureAndTransform( double width, double height, Transform transform) { var lt = new LayoutTransformControl() { LayoutTransform = transform }; lt.Child = new Rectangle() { Width = width, Height = height }; lt.Measure(Size.Infinity); lt.Arrange(new Rect(lt.DesiredSize)); return(lt); }
public void Should_Generate_ScaleTransform_x2() { LayoutTransformControl lt = CreateWithChildAndMeasureAndTransform( 100, 50, new ScaleTransform() { ScaleX = 2, ScaleY = 2 }); Assert.NotNull(lt.TransformRoot.RenderTransform); Matrix m = lt.TransformRoot.RenderTransform.Value; Matrix res = Matrix.CreateScale(2, 2); Assert.Equal(m.M11, res.M11, 3); Assert.Equal(m.M12, res.M12, 3); Assert.Equal(m.M21, res.M21, 3); Assert.Equal(m.M22, res.M22, 3); Assert.Equal(m.M31, res.M31, 3); Assert.Equal(m.M32, res.M32, 3); }
public void Should_Generate_SkewTransform_minus_45_degrees() { LayoutTransformControl lt = CreateWithChildAndMeasureAndTransform( 100, 100, new SkewTransform() { AngleX = -45, AngleY = -45 }); Assert.NotNull(lt.TransformRoot.RenderTransform); Matrix m = lt.TransformRoot.RenderTransform.Value; Matrix res = Matrix.CreateSkew(Matrix.ToRadians(-45), Matrix.ToRadians(-45)); Assert.Equal(m.M11, res.M11, 3); Assert.Equal(m.M12, res.M12, 3); Assert.Equal(m.M21, res.M21, 3); Assert.Equal(m.M22, res.M22, 3); Assert.Equal(m.M31, res.M31, 3); Assert.Equal(m.M32, res.M32, 3); }
public void Should_Generate_RotateTransform_minus_90_degrees() { LayoutTransformControl lt = CreateWithChildAndMeasureAndTransform( 100, 25, new RotateTransform() { Angle = -90 }); Assert.NotNull(lt.TransformRoot.RenderTransform); var m = lt.TransformRoot.RenderTransform.Value; var res = Matrix.CreateRotation(Matrix.ToRadians(-90)); Assert.Equal(m.M11, res.M11, 3); Assert.Equal(m.M12, res.M12, 3); Assert.Equal(m.M21, res.M21, 3); Assert.Equal(m.M22, res.M22, 3); Assert.Equal(m.M31, res.M31, 3); Assert.Equal(m.M32, res.M32, 3); }
public void Should_Generate_ScaleTransform_x2() { using var app = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); LayoutTransformControl lt = CreateWithChildAndMeasureAndTransform( 100, 50, new ScaleTransform() { ScaleX = 2, ScaleY = 2 }); Assert.NotNull(lt.TransformRoot.RenderTransform); Matrix m = lt.TransformRoot.RenderTransform.Value; Matrix res = Matrix.CreateScale(2, 2); Assert.Equal(m.M11, res.M11, 3); Assert.Equal(m.M12, res.M12, 3); Assert.Equal(m.M21, res.M21, 3); Assert.Equal(m.M22, res.M22, 3); Assert.Equal(m.M31, res.M31, 3); Assert.Equal(m.M32, res.M32, 3); }
private static LayoutTransformControl CreateWithChildAndMeasureAndTransform( double width, double height, Transform transform) { var lt = new LayoutTransformControl() { LayoutTransform = transform, Template = new FuncControlTemplate<LayoutTransformControl>( p => new ContentPresenter() { Content = p.Content }) }; lt.Content = new Rectangle() { Width = width, Height = height }; lt.ApplyTemplate(); //we need to force create visual child //so the measure after is correct (lt.Presenter as ContentPresenter).UpdateChild(); Assert.NotNull(lt.Presenter?.Child); lt.Measure(Size.Infinity); lt.Arrange(new Rect(lt.DesiredSize)); return lt; }
/// <summary> /// Instantiates a new instance of the DisplayAxis class. /// </summary> internal DisplayAxis() { OrientedPanel = new OrientedPanel(); #if SILVERLIGHT DefaultStyleKey = typeof (DisplayAxis); OrientedPanel.UseLayoutRounding = true; #endif DependentAxisGrid = new Grid(); TitleLayoutTransformControl = new LayoutTransformControl(); TitleLayoutTransformControl.HorizontalAlignment = ((FrameworkElement) this).HorizontalAlignment.Center; TitleLayoutTransformControl.VerticalAlignment = ((FrameworkElement) this).VerticalAlignment.Center; SizeChanged += new SizeChangedEventHandler(DisplayAxisSizeChanged); }