From af11240107f7f76aebe55c09e4db558c3b48165a Mon Sep 17 00:00:00 2001 From: metaone01 Date: Sun, 15 Dec 2024 18:59:38 +0800 Subject: [PATCH] bugfix: ScrollBar will be hidden when ScrollBarVisibility is specified as Visible (#17718) * test:A unittest for debug MenuScrollingVisibilityConverter * bugfix: ScrollBar will be hidden when ScrollBarVisibility is specified as Visible --- .../Converters/MenuScrollingVisibilityConverter.cs | 5 +++++ tests/Avalonia.Controls.UnitTests/ScrollViewerTests.cs | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/src/Avalonia.Controls/Converters/MenuScrollingVisibilityConverter.cs b/src/Avalonia.Controls/Converters/MenuScrollingVisibilityConverter.cs index 18d668e9a4..fd39f584ae 100644 --- a/src/Avalonia.Controls/Converters/MenuScrollingVisibilityConverter.cs +++ b/src/Avalonia.Controls/Converters/MenuScrollingVisibilityConverter.cs @@ -57,6 +57,11 @@ namespace Avalonia.Controls.Converters return true; } + if (visibility == ScrollBarVisibility.Visible) + { + return true; + } + return false; } } diff --git a/tests/Avalonia.Controls.UnitTests/ScrollViewerTests.cs b/tests/Avalonia.Controls.UnitTests/ScrollViewerTests.cs index 31f095ba3a..4a858abc07 100644 --- a/tests/Avalonia.Controls.UnitTests/ScrollViewerTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ScrollViewerTests.cs @@ -469,6 +469,15 @@ namespace Avalonia.Controls.UnitTests Assert.Equal(new Vector(0, 0), target.Offset); } + [Fact] + public void MenuScrollBar_Should_Be_Visible_When_Specified_Visible() + { + Converters.MenuScrollingVisibilityConverter converter = Converters.MenuScrollingVisibilityConverter.Instance; + IList args = new List {ScrollBarVisibility.Visible,400d,1800d,500d}; + var result = converter.Convert(args, typeof(ScrollBarVisibility), "0", System.Globalization.CultureInfo.CurrentCulture); + Assert.Equal(true, result); + } + private Point GetRootPoint(Visual control, Point p) { if (control.GetVisualRoot() is Visual root &&