WPF。如何通过it设置元素的焦点';s标签索引?

WPF。如何通过it设置元素的焦点';s标签索引?,wpf,focus,tabindex,Wpf,Focus,Tabindex,如果元素是DataTemplate的一部分,并且元素的选项卡索引是唯一定义的,那么是否可以通过其选项卡索引获取元素或对其设置焦点(例如,文本框)?您可以搜索通过模板创建的任何元素。 因此,您可以检查任何现有元素的TabIndex,并将找到所需的元素(如果您的tab索引是唯一的:)。您还可以在DataTemplate中命名您的elments,并为其命名过滤器 下面的函数允许您查找给定类型的可视树的所有元素 void FindChildFrameworkElementsOfType<T>

如果元素是DataTemplate的一部分,并且元素的选项卡索引是唯一定义的,那么是否可以通过其选项卡索引获取元素或对其设置焦点(例如,文本框)?

您可以搜索通过模板创建的任何元素。
因此,您可以检查任何现有元素的TabIndex,并将找到所需的元素(如果您的tab索引是唯一的:)。您还可以在DataTemplate中命名您的elments,并为其命名过滤器

下面的函数允许您查找给定类型的可视树的所有元素

void FindChildFrameworkElementsOfType<T>(DependencyObject parent,IList<T> list) where T: FrameworkElement{             
    DependencyObject child; 
    for(int i=0;i< VisualTreeHelper.GetChildrenCount(parent);i++){             
        child = VisualTreeHelper.GetChild(parent, i); 
        if (child is T) { 
            list.Add((T)child); 
        } 
        FindChildFrameworkElementsOfType<T>(child,list); 
    } 
}
void findChildFrameworkElementSoftType(DependencyObject父对象,IList列表),其中T:FrameworkElement{
依赖对象子对象;
对于(int i=0;i
可以这样称呼它:

List<TextBox>  textBoxList=new List<TextBox>();
FindChildFrameworkElementsOfType<TextBox>(rootObject,textBoxList);
List textBoxList=newlist();
FindChildFrameworkElementSoftType(rootObject,textBoxList);
其中
rootObject
是根对象,例如窗口或基本控件。您将获得一个所有文本框的列表,并且该列表可用于检查选项卡索引或任何您想要检查的属性。

在调用此函数之前,请注意必须构建树。Als在某些情况下,上述模式不起作用,例如列表中的UI虚拟化。

Yep!这就是我需要的!多么宝贵的功能啊!非常感谢。