@@ -245,6 +245,13 @@ public partial class TreeView<TItem> : IModelEqualityComparer<TItem>
245245 [ Parameter ]
246246 public bool EnableKeyboard { get ; set ; }
247247
248+ /// <summary>
249+ /// <para lang="zh">获得/设置 是否将 active 选中节点自动滚动到可视状态</para>
250+ /// <para lang="en">Gets or sets whether to automatically scroll the active selected node into the visible state.</para>
251+ /// </summary>
252+ [ Parameter ]
253+ public bool IsAutoScrollIntoView { get ; set ; }
254+
248255 /// <summary>
249256 /// <para lang="zh">获得/设置 键盘导航时的滚动至视图选项,默认为 null,使用 { behavior: "smooth", block: "nearest", inline: "start" }</para>
250257 /// <para lang="en">Gets or sets the scroll into view options for keyboard navigation. Default is null, using { behavior: "smooth", block: "nearest", inline: "start" }</para>
@@ -350,6 +357,7 @@ public partial class TreeView<TItem> : IModelEqualityComparer<TItem>
350357 private string ? _searchText ;
351358 private bool _shouldRender = true ;
352359 private bool _init ;
360+ private bool _scrollIntoView = false ;
353361
354362 /// <summary>
355363 /// <inheritdoc/>
@@ -410,6 +418,7 @@ protected override async Task OnParametersSetAsync()
410418 _activeItem ??= Items . FirstOrDefaultActiveItem ( ) ;
411419 _activeItem ? . SetParentExpand < TreeViewItem < TItem > , TItem > ( true ) ;
412420 _init = true ;
421+ _scrollIntoView = true ;
413422 }
414423 }
415424 }
@@ -424,6 +433,7 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
424433
425434 if ( _keyboardArrowUpDownTrigger )
426435 {
436+ _scrollIntoView = false ;
427437 _keyboardArrowUpDownTrigger = false ;
428438 await InvokeVoidAsync ( "scroll" , Id , ScrollIntoViewOptions ) ;
429439 }
@@ -432,6 +442,12 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
432442 {
433443 await InvokeVoidAsync ( "resetTreeViewRow" , Id ) ;
434444 }
445+
446+ if ( IsAutoScrollIntoView && _scrollIntoView )
447+ {
448+ _scrollIntoView = false ;
449+ await InvokeVoidAsync ( "scroll" , Id , ScrollIntoViewOptions ) ;
450+ }
435451 }
436452
437453 /// <summary>
@@ -703,6 +719,7 @@ public void SetActiveItem(TreeViewItem<TItem>? item)
703719 {
704720 _activeItem = item ;
705721 _activeItem ? . SetParentExpand < TreeViewItem < TItem > , TItem > ( true ) ;
722+ _scrollIntoView = true ;
706723 StateHasChanged ( ) ;
707724 }
708725
0 commit comments