Как я могу перебрать все элементы управления в элементе управления вкладками (wpf)? - PullRequest
1 голос
/ 25 февраля 2010

Я видел несколько примеров того, как сделать это с winforms, но не смог заставить его работать в wpf, так как у wpf TabItem нет определения для Controls. Вот код, который я сейчас использую, который не работает.

  TabItem ti = rep1Tab;
                var controls = ti.Controls;
                foreach (var control in controls)
                {
                    //do stuff
                }

Ответы [ 2 ]

3 голосов
/ 25 февраля 2010

TabItem обычно содержит элемент управления контейнера, такой как Grid по умолчанию. Вы можете попробовать просмотреть дочерние элементы этого элемента управления контейнера.

foreach (UIElement element in Grid1.Children)
        {
            //process element
        }

Если вам нужно получить доступ к свойствам определенного элемента управления, вы должны преобразовать элемент

 foreach (UIElement element in Grid1.Children)
        {
            //process element
            Button btn = (Button)element;
            btn.Content = "Hello World";
        }
3 голосов
/ 25 февраля 2010

Если вам нужны логические дочерние элементы, вы используете LogicalTreeHelper.GetChilren () . Если вы хотите визуальных потомков, вы используете VisualTreeHelper.GetChild () в сочетании с VisualTreeHelper.GetChildrenCount ()

...