在 WPF 中,可以使用 VisualTreeHelper 类来遍历可视化树并查找所有相邻元素。以下是一个示例方法,它接受一个 FrameworkElement 元素和一个谓词(用于筛选元素),并返回一个包含所有相邻元素的集合:

public static IEnumerable<FrameworkElement> FindAdjacentElements(FrameworkElement element, Func<FrameworkElement, bool> predicate)
{
    if (element == null)
    {
        yield break;
    }

    DependencyObject parent = VisualTreeHelper.GetParent(element);
    if (parent == null)
    {
        yield break;
    }

    int count = VisualTreeHelper.GetChildrenCount(parent);
    for (int i = 0; i < count; i++)
    {
        DependencyObject child = VisualTreeHelper.GetChild(parent, i);
        if (child is FrameworkElement adjacentElement && predicate(adjacentElement))
        {
            yield return adjacentElement;
        }
    }
}

可以按照以下方式使用此方法:

// 查找所有相邻的 Button 元素
IEnumerable<FrameworkElement> adjacentButtons = FindAdjacentElements(myButton, e => e is Button);

// 遍历所有相邻的元素并执行操作
foreach (FrameworkElement adjacentElement in adjacentButtons)
{
    // ...
}
wpf 查找所有相邻元素

原文地址: http://www.cveoy.top/t/topic/bVVD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录