wpf - 如何获得 ContentPresenter 的 child ?

标签 wpf

使用代码我可以获得内容演示者。我想找到其中的第一个文本框并相应地设置焦点。

Dim obj = TerritoryListViewer.ItemContainerGenerator.ContainerFromItem(myModel)

最佳答案

您可以使用 VisualTreeHelper用于抓取控件树的静态类。
这就是它在 c# 中的实现方式(对不起,我是 VB 阅读障碍))

 T FindFirstChild<T>(FrameworkElement element) where T: FrameworkElement
    {
        int childrenCount = VisualTreeHelper.GetChildrenCount(element);
        var children = new FrameworkElement[childrenCount];

        for (int i = 0; i < childrenCount; i++)
        {
            var child = VisualTreeHelper.GetChild(element, i) as FrameworkElement;
            children[i] = child;
            if (child is T)
                return (T)child;
        }

        for (int i = 0; i < childrenCount; i++)
            if (children[i] != null)
            {
                var subChild = FindFirstChild<T>(children[i]);
                if (subChild != null)
                    return subChild;
            }

        return null;
    }

关于wpf - 如何获得 ContentPresenter 的 child ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4163754/

相关文章:

wpf - 如何使窗口最大化时所有控件按比例相应调整大小?

c# - 如何在自定义 FrameworkElement 上设置指针事件样式

c# - 获取一个Microsoft.VisualStudio.TextLogic版本14必须安装在GAC中

c# - 在用户控件或MVVM中使用后面的代码

wpf - 在选项卡控件中处理多个数据网格以便单元格在选项卡更改时离开编辑模式的正确方法是什么?

c# - 当 DataTemplate 为 Button 时,ListBox 项返回字符串

android - WCF 服务 <-> 具有快速更新的 WPF/iOS/Android 客户端通信

c# - WPF 使用附加属性和行为执行 ICommand

.net - 自动卡住从模板构建的 wpf 对象

WPF:如何为上下文菜单实现 Blend 的 Dark 主题