From a96341498a1286075ad8b8729baa49d2c3f1f19a Mon Sep 17 00:00:00 2001 From: rabbitism Date: Thu, 16 May 2024 23:22:43 +0800 Subject: [PATCH] fix: ensure indicator is visibility upon loaded. --- .../ViewModels/SelectionListDemoViewModel.cs | 1 + src/Ursa/Controls/SelectionList/SelectionList.cs | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/demo/Ursa.Demo/ViewModels/SelectionListDemoViewModel.cs b/demo/Ursa.Demo/ViewModels/SelectionListDemoViewModel.cs index 3711edd..b05b20f 100644 --- a/demo/Ursa.Demo/ViewModels/SelectionListDemoViewModel.cs +++ b/demo/Ursa.Demo/ViewModels/SelectionListDemoViewModel.cs @@ -14,6 +14,7 @@ public partial class SelectionListDemoViewModel: ObservableObject { "Ding", "Otter", "Husky", "Mr. 17", "Cass" }; + SelectedItem = Items[0]; } public void Clear() diff --git a/src/Ursa/Controls/SelectionList/SelectionList.cs b/src/Ursa/Controls/SelectionList/SelectionList.cs index ba102cc..916a446 100644 --- a/src/Ursa/Controls/SelectionList/SelectionList.cs +++ b/src/Ursa/Controls/SelectionList/SelectionList.cs @@ -7,6 +7,7 @@ using Avalonia.Controls.Primitives; using Avalonia.Controls.Selection; using Avalonia.Controls.Templates; using Avalonia.Input; +using Avalonia.Interactivity; using Avalonia.Rendering.Composition; using Avalonia.Rendering.Composition.Animations; using Irihi.Avalonia.Shared.Helpers; @@ -95,6 +96,18 @@ public class SelectionList: SelectingItemsControl EnsureIndicatorAnimation(); } + protected override void OnLoaded(RoutedEventArgs e) + { + base.OnLoaded(e); + if(_indicator is not null && SelectedItem is not null) + { + var container = ContainerFromItem(SelectedItem); + if (container is null) return; + _indicator.Opacity = 1; + _indicator.Arrange(container.Bounds); + } + } + private void EnsureIndicatorAnimation() { if (_indicator is not null)