Browse Source

Add D2D support for TextAlignment

pull/43/head
ncarrillo 12 years ago
parent
commit
a33ca9de04
  1. 3
      Windows/Perspex.Direct2D1/Direct2D1Platform.cs
  2. 3
      Windows/Perspex.Direct2D1/Media/FormattedTextImpl.cs
  3. 12
      Windows/Perspex.Direct2D1/PrimitiveExtensions.cs

3
Windows/Perspex.Direct2D1/Direct2D1Platform.cs

@ -42,9 +42,10 @@ namespace Perspex.Direct2D1
string fontFamily,
double fontSize,
FontStyle fontStyle,
TextAlignment textAlignment,
FontWeight fontWeight)
{
return new FormattedTextImpl(text, fontFamily, fontSize, fontStyle, fontWeight);
return new FormattedTextImpl(text, fontFamily, fontSize, fontStyle, textAlignment, fontWeight);
}
public IRenderer CreateRenderer(IPlatformHandle handle, double width, double height)

3
Windows/Perspex.Direct2D1/Media/FormattedTextImpl.cs

@ -21,6 +21,7 @@ namespace Perspex.Direct2D1.Media
string fontFamily,
double fontSize,
FontStyle fontStyle,
TextAlignment textAlignment,
FontWeight fontWeight)
{
var factory = Locator.Current.GetService<DWrite.Factory>();
@ -38,6 +39,8 @@ namespace Perspex.Direct2D1.Media
format,
float.MaxValue,
float.MaxValue);
this.TextLayout.TextAlignment = textAlignment.ToDirect2D();
}
public Size Constraint

12
Windows/Perspex.Direct2D1/PrimitiveExtensions.cs

@ -9,6 +9,7 @@ namespace Perspex.Direct2D1
using System.Linq;
using SharpDX;
using SharpDX.Direct2D1;
using DWrite = SharpDX.DirectWrite;
public static class PrimitiveExtensions
{
@ -128,5 +129,16 @@ namespace Perspex.Direct2D1
(float)rect.Width,
(float)rect.Height);
}
public static DWrite.TextAlignment ToDirect2D(this Perspex.Media.TextAlignment alignment)
{
if (alignment == Perspex.Media.TextAlignment.Left)
return DWrite.TextAlignment.Leading;
if (alignment == Perspex.Media.TextAlignment.Centered)
return DWrite.TextAlignment.Center;
return DWrite.TextAlignment.Trailing;
}
}
}

Loading…
Cancel
Save