5 changed files with 97 additions and 0 deletions
@ -0,0 +1,97 @@ |
|||
using Avalonia.Controls; |
|||
using Avalonia.Media; |
|||
using Avalonia.Media.TextFormatting; |
|||
using Avalonia.Platform; |
|||
using Avalonia.Utilities; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Globalization; |
|||
using System.Linq; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Xunit; |
|||
|
|||
#if AVALONIA_SKIA
|
|||
namespace Avalonia.Skia.RenderTests |
|||
#else
|
|||
|
|||
using Avalonia.Direct2D1.RenderTests; |
|||
|
|||
namespace Avalonia.Direct2D1.RenderTests.Media |
|||
#endif
|
|||
{ |
|||
public class TextLayoutTests : TestBase |
|||
{ |
|||
public TextLayoutTests() |
|||
: base(@"Media\TextFormatting\TextLayout") |
|||
{ |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task TextLayout_Basic() |
|||
{ |
|||
var t = new TextLayout( |
|||
"Avalonia!", |
|||
new Typeface(TestFontFamily), |
|||
24, |
|||
Brushes.Black); |
|||
|
|||
var target = new Border |
|||
{ |
|||
Width = 200, |
|||
Height = 200, |
|||
Background = Brushes.White, |
|||
Child = new DrawnControl(c => |
|||
{ |
|||
var textRect = new Rect(t.Size); |
|||
var bounds = new Rect(0, 0, 200, 200); |
|||
var rect = bounds.CenterRect(textRect); |
|||
c.DrawRectangle(Brushes.Yellow, null, rect); |
|||
t.Draw(c, rect.Position); |
|||
}), |
|||
}; |
|||
|
|||
await RenderToFile(target); |
|||
CompareImages(); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task TextLayout_Rotated() |
|||
{ |
|||
var t = new TextLayout( |
|||
"Avalonia!", |
|||
new Typeface(TestFontFamily), |
|||
24, |
|||
Brushes.Black); |
|||
|
|||
var target = new Border |
|||
{ |
|||
Width = 200, |
|||
Height = 200, |
|||
Background = Brushes.White, |
|||
Child = new DrawnControl(c => |
|||
{ |
|||
var textRect = new Rect(t.Size); |
|||
var bounds = new Rect(0, 0, 200, 200); |
|||
var rect = bounds.CenterRect(textRect); |
|||
var rotate = Matrix.CreateTranslation(-100, -100) * |
|||
Matrix.CreateRotation(MathUtilities.Deg2Rad(90)) * |
|||
Matrix.CreateTranslation(100, 100); |
|||
using var transform = c.PushPreTransform(rotate); |
|||
c.DrawRectangle(Brushes.Yellow, null, rect); |
|||
t.Draw(c, rect.Position); |
|||
}), |
|||
}; |
|||
|
|||
await RenderToFile(target); |
|||
CompareImages(); |
|||
} |
|||
|
|||
private class DrawnControl : Control |
|||
{ |
|||
private readonly Action<DrawingContext> _render; |
|||
public DrawnControl(Action<DrawingContext> render) => _render = render; |
|||
public override void Render(DrawingContext context) => _render(context); |
|||
} |
|||
} |
|||
} |
|||
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
Loading…
Reference in new issue