开发者

WPF: Get next /prev visual object

I have a StackPanel containing a number ofTextBox. Is there a way to get the Next / Previous visual elements ?

The functionality I want开发者_如何转开发 is fairly analogous to jQuery's .next() function that get the next object.


You can try following method to enumerate the Visual Tree.

public static IEnumerable<T> FindVisualChildren<T>
(DependencyObject depObj, string childName) where T : DependencyObject
{

    if (depObj != null)
    {
        for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
        {

            DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
            var frameworkElement = child as FrameworkElement;
            if (child != null && frameworkElement.Name == childName)
            {
                yield return (T)child;
            }

            foreach (T childOfChild in FindVisualChildren<T>(child, childName))
            {
                yield return childOfChild;
            }
        }
     }
}

Assuming that you named your textBoxes "tbInsideStackPanel", use it like:

foreach (var textBox in FindVisualChildren<TextBox>(this.stackPanel1, 
              "tbInsideStackPanel").ToList())
{
   textBox.Background = Brushes.Blue;
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜