From e05a0d0014160e6b212c54b5ca2a5a5998837876 Mon Sep 17 00:00:00 2001 From: Takoooooo Date: Mon, 5 Sep 2022 11:49:33 +0300 Subject: [PATCH 1/2] Fix DashStyle not applying values correctly. --- src/Avalonia.Base/Media/DashStyle.cs | 1 - .../Xaml/ControlTemplateTests.cs | 50 +++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Base/Media/DashStyle.cs b/src/Avalonia.Base/Media/DashStyle.cs index abee580020..3a30b2d32f 100644 --- a/src/Avalonia.Base/Media/DashStyle.cs +++ b/src/Avalonia.Base/Media/DashStyle.cs @@ -35,7 +35,6 @@ namespace Avalonia.Media /// Initializes a new instance of the class. /// public DashStyle() - : this(null, 0) { } diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ControlTemplateTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ControlTemplateTests.cs index 2d6ed1dc62..203ec5ee3b 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ControlTemplateTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ControlTemplateTests.cs @@ -1,3 +1,5 @@ +using System; +using System.Linq; using Avalonia.Controls; using Avalonia.Controls.Presenters; using Avalonia.Data; @@ -5,12 +7,49 @@ using Avalonia.Diagnostics; using Avalonia.Markup.Xaml.Templates; using Avalonia.Media; using Avalonia.UnitTests; +using Avalonia.VisualTree; using Xunit; namespace Avalonia.Markup.Xaml.UnitTests.Xaml { public class ControlTemplateTests : XamlTestBase { + [Fact] + public void StyledProperties_Should_Be_Set_In_The_ControlTemplate() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + + var xaml = @" + + +"; + var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml); + var button = (Button)window.Content; + + window.ApplyTemplate(); + button.ApplyTemplate(); + var listBoxHierarchyLine = button.GetVisualChildren().ElementAt(0) as ListBoxHierachyLine; + Assert.Equal(1, listBoxHierarchyLine.LineDashStyle.Offset); + Assert.Equal(2, listBoxHierarchyLine.LineDashStyle.Dashes.Count); + Assert.Equal(2, listBoxHierarchyLine.LineDashStyle.Dashes[0]); + Assert.Equal(2, listBoxHierarchyLine.LineDashStyle.Dashes[1]); + } + + } + [Fact] public void Inline_ControlTemplate_Styled_Values_Are_Set_With_Style_Priority() { @@ -270,4 +309,15 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml Assert.Equal("Bar", bar.Name); } } + public class ListBoxHierachyLine : Panel + { + public static readonly StyledProperty LineDashStyleProperty = + AvaloniaProperty.Register(nameof(LineDashStyle)); + + public DashStyle LineDashStyle + { + get => GetValue(LineDashStyleProperty); + set => SetValue(LineDashStyleProperty, value); + } + } } From 99e02059a8c84af73c1d8e46f08e5a4d0c3a2ebb Mon Sep 17 00:00:00 2001 From: Takoooooo Date: Mon, 5 Sep 2022 13:14:38 +0300 Subject: [PATCH 2/2] Fix Test. --- tests/Avalonia.Base.UnitTests/Media/PenTests.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/Avalonia.Base.UnitTests/Media/PenTests.cs b/tests/Avalonia.Base.UnitTests/Media/PenTests.cs index fecdd30834..6016978fde 100644 --- a/tests/Avalonia.Base.UnitTests/Media/PenTests.cs +++ b/tests/Avalonia.Base.UnitTests/Media/PenTests.cs @@ -53,7 +53,10 @@ namespace Avalonia.Base.UnitTests.Media var raised = false; target.Invalidated += (s, e) => raised = true; - dashes.Dashes.Add(0.3); + dashes.Dashes = new AvaloniaList + { + 0.3 + }; Assert.True(raised); }