Browse Source

Merge pull request #11811 from workgroupengineering/fixes/BoxShawdows_ToString

fix(BoxShadows): ToString()
pull/11815/head
Max Katz 3 years ago
committed by GitHub
parent
commit
b9fe15f26c
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 24
      src/Avalonia.Base/Media/BoxShadow.cs
  2. 10
      src/Avalonia.Base/Media/BoxShadows.cs
  3. 8
      tests/Avalonia.Base.UnitTests/Media/BoxShadowTests.cs

24
src/Avalonia.Base/Media/BoxShadow.cs

@ -73,40 +73,44 @@ namespace Avalonia.Media
public override string ToString()
{
var sb = StringBuilderCache.Acquire();
ToString(sb);
return StringBuilderCache.GetStringAndRelease(sb);
}
internal void ToString(StringBuilder sb)
{
if (this == default)
{
return "none";
sb.Append("none");
return;
}
if (IsInset)
{
sb.Append("inset");
sb.Append("inset ");
}
if (OffsetX != 0.0)
{
sb.AppendFormat(" {0}", OffsetX.ToString(CultureInfo.InvariantCulture));
sb.AppendFormat("{0} ", OffsetX.ToString(CultureInfo.InvariantCulture));
}
if (OffsetY != 0.0)
{
sb.AppendFormat(" {0}", OffsetY.ToString(CultureInfo.InvariantCulture));
sb.AppendFormat("{0} ", OffsetY.ToString(CultureInfo.InvariantCulture));
}
if (Blur != 0.0)
{
sb.AppendFormat(" {0}", Blur.ToString(CultureInfo.InvariantCulture));
sb.AppendFormat("{0} ", Blur.ToString(CultureInfo.InvariantCulture));
}
if (Spread != 0.0)
{
sb.AppendFormat(" {0}", Spread.ToString(CultureInfo.InvariantCulture));
sb.AppendFormat("{0} ", Spread.ToString(CultureInfo.InvariantCulture));
}
sb.AppendFormat(" {0}", Color.ToString());
return StringBuilderCache.GetStringAndRelease(sb);
sb.AppendFormat("{0}", Color.ToString());
}
public static unsafe BoxShadow Parse(string s)

10
src/Avalonia.Base/Media/BoxShadows.cs

@ -39,20 +39,20 @@ namespace Avalonia.Media
public override string ToString()
{
var sb = StringBuilderCache.Acquire();
if (Count == 0)
{
return "none";
}
var sb = StringBuilderCache.Acquire();
foreach (var boxShadow in this)
{
sb.AppendFormat("{0} ", boxShadow.ToString());
boxShadow.ToString(sb);
sb.Append(',');
sb.Append(' ');
}
sb.Remove(sb.Length - 2, 2);
return StringBuilderCache.GetStringAndRelease(sb);
}
[EditorBrowsable(EditorBrowsableState.Never)]

8
tests/Avalonia.Base.UnitTests/Media/BoxShadowTests.cs

@ -41,5 +41,13 @@ namespace Avalonia.Base.UnitTests.Media
Assert.Equal(Colors.Red, parsed.Color);
}
}
[Fact]
public void BoxShadows_Should_ToString()
{
const string source = "-20 -20 60 #CCFFFFFF, 20 20 60 #33000000";
var parsed = BoxShadows.Parse(source);
Assert.Equal(source, parsed.ToString(), true);
}
}
}

Loading…
Cancel
Save