From ec655a9f7e8cb53536890112807ddf5d1caae9da Mon Sep 17 00:00:00 2001 From: workgroupengineering Date: Mon, 12 Aug 2024 07:55:57 +0200 Subject: [PATCH] feat(XamlX): Trim text before invoke Color.Parse (#16649) * test: Add falling test case * feat(XamlX): trim text before invoke Color.Parse --- .../AvaloniaXamlIlLanguageParseIntrinsics.cs | 1 + .../Xaml/AvaloniaIntrinsicsTests.cs | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlLanguageParseIntrinsics.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlLanguageParseIntrinsics.cs index ce8937027e..93a4b3146c 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlLanguageParseIntrinsics.cs +++ b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/AvaloniaXamlIlLanguageParseIntrinsics.cs @@ -172,6 +172,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions if (type.Equals(types.Color)) { + text = text.Trim(); if (!Color.TryParse(text, out Color color)) { return ReturnOnParseError($"Unable to parse \"{text}\" as a color", out result); diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/AvaloniaIntrinsicsTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/AvaloniaIntrinsicsTests.cs index d873c7f9ff..592dd42698 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/AvaloniaIntrinsicsTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/AvaloniaIntrinsicsTests.cs @@ -108,6 +108,24 @@ public class AvaloniaIntrinsicsTests : XamlTestBase Assert.Contains(contains, runtimeXamlDiagnostic.Title, StringComparison.OrdinalIgnoreCase); } } + + /// + /// GitHub Issue #15320 + /// + [Fact] + public void Should_Parse_Formatted_Color_Tag() + { + var target = AvaloniaRuntimeXamlLoader + .Parse($""" + + + White + + + """); + Assert.NotNull(target); + } } public class TestIntrinsicsControl : Control