A cross-platform UI framework for .NET
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

35 lines
1000 B

using Avalonia.Controls;
using Avalonia.Media;
using Xunit;
namespace Avalonia.Base.UnitTests.Rendering;
public class DrawingImagePropagationTests : CompositorTestsBase
{
private static Image CreateImage(DrawingImage image) => new()
{
Source = image,
Width = 20,
Height = 10,
[Canvas.LeftProperty] = 30,
[Canvas.TopProperty] = 50
};
[Fact]
public void Mutating_Geometry_Inside_DrawingImage_Invalidates_Consumer()
{
using var services = new CompositorCanvas();
var geometry = new RectangleGeometry(new Rect(0, 0, 20, 10));
var image = new DrawingImage(new GeometryDrawing { Brush = Brushes.Red, Geometry = geometry });
services.Canvas.Children.Add(CreateImage(image));
services.RunJobs();
services.Events.Rects.Clear();
geometry.Rect = new Rect(0, 0, 30, 15);
services.AssertRects(
new Rect(30, 50, 20, 10),
new Rect(30, 50, 30, 15));
}
}