UWP WinUI TreeView可编程滚动至项目
我正在尝试使用新的UWP WinUI TreeView可编程滚动至项目,uwp,winui,Uwp,Winui,我正在尝试使用新的WinUItoolkitTreeView控件。我需要以编程方式滚动到特定项目 我找不到这样做的方法。目前,TreeView类中没有用于滚动查看的api。但是您可以在TreeViewControlTemplate中获得TreeView列表。它基于ListViewBase,包含ScrollIntoView方法。要获取TreeView列表,可以使用VisualTreeHelper类 public static DependencyObject FindChildByName(Depe
WinUI
toolkitTreeView
控件。我需要以编程方式滚动到特定项目
我找不到这样做的方法。目前,
TreeView
类中没有用于滚动查看的api。但是您可以在TreeViewControlTemplate
中获得TreeView列表
。它基于ListViewBase
,包含ScrollIntoView
方法。要获取TreeView列表
,可以使用VisualTreeHelper
类
public static DependencyObject FindChildByName(DependencyObject parant, string ControlName)
{
int count = VisualTreeHelper.GetChildrenCount(parant);
for (int i = 0; i < count; i++)
{
var MyChild = VisualTreeHelper.GetChild(parant, i);
if (MyChild is FrameworkElement && ((FrameworkElement)MyChild).Name == ControlName)
return MyChild;
var FindResult = FindChildByName(MyChild, ControlName);
if (FindResult != null)
return FindResult;
}
return null;
}
<TreeViewList x:Name="ListControl" AllowDrop="False"
CanReorderItems="False"
CanDragItems="False"
ItemContainerStyle="{StaticResource TreeViewItemStyle}"
ItemTemplate="{StaticResource CultureItemDataTemplate}">
<TreeViewList.ItemContainerTransitions>
<TransitionCollection>
<ContentThemeTransition/>
<ReorderThemeTransition/>
<EntranceThemeTransition IsStaggeringEnabled="False"/>
</TransitionCollection>
</TreeViewList.ItemContainerTransitions>
</TreeViewList>
private void Button_Click(object sender, RoutedEventArgs e)
{
var listControl = FindChildByName(treeView1, "ListControl") as ListViewBase;
listControl.ScrollIntoView(treeView1.RootNodes.LastOrDefault());
}