|
@@ -220,6 +220,49 @@ namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ [Fact]
|
|
|
|
|
+ public void Transform_For_Control_With_RenderTransform_Should_Be_Correct_After_Update()
|
|
|
|
|
+ {
|
|
|
|
|
+ using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
|
|
|
|
|
+ {
|
|
|
|
|
+ Border border;
|
|
|
|
|
+ var tree = new TestRoot
|
|
|
|
|
+ {
|
|
|
|
|
+ Width = 400,
|
|
|
|
|
+ Height = 200,
|
|
|
|
|
+ Child = new Decorator
|
|
|
|
|
+ {
|
|
|
|
|
+ Width = 200,
|
|
|
|
|
+ Height = 100,
|
|
|
|
|
+ Child = border = new Border
|
|
|
|
|
+ {
|
|
|
|
|
+ Background = Brushes.Red,
|
|
|
|
|
+ HorizontalAlignment = HorizontalAlignment.Right,
|
|
|
|
|
+ Width = 100,
|
|
|
|
|
+ RenderTransform = new ScaleTransform(0.5, 1),
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ tree.Measure(Size.Infinity);
|
|
|
|
|
+ tree.Arrange(new Rect(tree.DesiredSize));
|
|
|
|
|
+
|
|
|
|
|
+ var scene = new Scene(tree);
|
|
|
|
|
+ var sceneBuilder = new SceneBuilder();
|
|
|
|
|
+ sceneBuilder.UpdateAll(scene);
|
|
|
|
|
+
|
|
|
|
|
+ var expectedTransform = Matrix.CreateScale(0.5, 1) * Matrix.CreateTranslation(225, 50);
|
|
|
|
|
+ var borderNode = scene.FindNode(border);
|
|
|
|
|
+ Assert.Equal(expectedTransform, borderNode.Transform);
|
|
|
|
|
+
|
|
|
|
|
+ scene = scene.Clone();
|
|
|
|
|
+ Assert.True(sceneBuilder.Update(scene, border));
|
|
|
|
|
+
|
|
|
|
|
+ borderNode = scene.FindNode(border);
|
|
|
|
|
+ Assert.Equal(expectedTransform, borderNode.Transform);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
[Fact]
|
|
[Fact]
|
|
|
public void Should_Update_Border_Background_Node()
|
|
public void Should_Update_Border_Background_Node()
|
|
|
{
|
|
{
|