From 5a5be9e767d3545a628305679000930421da880c Mon Sep 17 00:00:00 2001 From: Benedikt Schroeder Date: Fri, 18 May 2018 01:02:09 +0200 Subject: [PATCH] Requested changes --- src/Avalonia.Visuals/Media/FontFamily.cs | 14 ++++++++++++++ src/Avalonia.Visuals/Media/Fonts/FontFamilyKey.cs | 11 ++++++----- src/Avalonia.Visuals/Media/Typeface.cs | 7 +++++++ src/Shared/PlatformSupport/AssetLoader.cs | 2 +- .../Avalonia.Direct2D1/Direct2D1Platform.cs | 2 +- .../Media/FontFamilyTests.cs | 8 ++++++++ 6 files changed, 37 insertions(+), 7 deletions(-) diff --git a/src/Avalonia.Visuals/Media/FontFamily.cs b/src/Avalonia.Visuals/Media/FontFamily.cs index 6383a58ac6..e8709138c8 100644 --- a/src/Avalonia.Visuals/Media/FontFamily.cs +++ b/src/Avalonia.Visuals/Media/FontFamily.cs @@ -79,9 +79,23 @@ namespace Avalonia.Media /// public override string ToString() { + if (Key != null) + { + return Key + "#" + Name; + } + return Name; } + /// + /// Implicit conversion of FontFamily to string + /// + /// + public static implicit operator string(FontFamily fontFamily) + { + return fontFamily.ToString(); + } + /// /// Parses a string. /// diff --git a/src/Avalonia.Visuals/Media/Fonts/FontFamilyKey.cs b/src/Avalonia.Visuals/Media/Fonts/FontFamilyKey.cs index 204d419be4..b248b5145d 100644 --- a/src/Avalonia.Visuals/Media/Fonts/FontFamilyKey.cs +++ b/src/Avalonia.Visuals/Media/Fonts/FontFamilyKey.cs @@ -88,12 +88,13 @@ namespace Avalonia.Media.Fonts /// public override string ToString() { - if (FileName != null) - { - return Location.AbsolutePath + "." + FileName; - } + if (FileName == null) return Location.PathAndQuery; + + var builder = new UriBuilder(Location); + + builder.Path += "." + FileName; - return Location.AbsolutePath; + return builder.ToString(); } } } \ No newline at end of file diff --git a/src/Avalonia.Visuals/Media/Typeface.cs b/src/Avalonia.Visuals/Media/Typeface.cs index 6baec1a246..ead15fe0f3 100644 --- a/src/Avalonia.Visuals/Media/Typeface.cs +++ b/src/Avalonia.Visuals/Media/Typeface.cs @@ -7,6 +7,13 @@ namespace Avalonia.Media /// public class Typeface { + /// + /// Initializes a new instance of the class. + /// + /// The font family. + /// The font size, in DIPs. + /// The font style. + /// The font weight. public Typeface(FontFamily fontFamily, double fontSize = 12, FontStyle style = FontStyle.Normal, FontWeight weight = FontWeight.Normal) { diff --git a/src/Shared/PlatformSupport/AssetLoader.cs b/src/Shared/PlatformSupport/AssetLoader.cs index 64c6d60bfb..6fee855352 100644 --- a/src/Shared/PlatformSupport/AssetLoader.cs +++ b/src/Shared/PlatformSupport/AssetLoader.cs @@ -216,5 +216,5 @@ namespace Avalonia.Shared.PlatformSupport public Dictionary Resources { get; } public string Name { get; } } - } + } } diff --git a/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs b/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs index 0c3b01bbf1..296edcb2d9 100644 --- a/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs +++ b/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs @@ -117,7 +117,7 @@ namespace Avalonia.Direct2D1 } public IFormattedTextImpl CreateFormattedText( - string text, + string text, Typeface typeface, TextAlignment textAlignment, TextWrapping wrapping, diff --git a/tests/Avalonia.Visuals.UnitTests/Media/FontFamilyTests.cs b/tests/Avalonia.Visuals.UnitTests/Media/FontFamilyTests.cs index 66aa1ab583..c88a57ec9d 100644 --- a/tests/Avalonia.Visuals.UnitTests/Media/FontFamilyTests.cs +++ b/tests/Avalonia.Visuals.UnitTests/Media/FontFamilyTests.cs @@ -24,6 +24,14 @@ namespace Avalonia.Visuals.UnitTests.Media Assert.Throws(() => new FontFamily((IEnumerable)null)); } + [Fact] + public void ShouldImplicitlyConvertToString() + { + var fontFamily = new FontFamily("Arial"); + + Assert.Equal("Arial", fontFamily); + } + [Fact] public void Parse_Parses_FontFamily_With_Name() {