WPF + Controls.UserControl.Как найти контроль внутри? - PullRequest
0 голосов
/ 01 июля 2011

В моем проекте WPF у меня есть элемент управления System.Windows.Controls.UserControl.Как найти элемент управления внутри этого контроллера?

Ответы [ 2 ]

1 голос
/ 01 июля 2011

В этом случае вы, вероятно, захотите пройтись по визуальному дереву, как это делает метод расширения:

internal static T FindVisualChild<T>(this DependencyObject parent) where T : DependencyObject
{
    if (parent == null)
    {
        return null;
    }

    DependencyObject parentObject = parent;
    int childCount = VisualTreeHelper.GetChildrenCount(parent);
    for (int i = 0; i < childCount; i++)
    {
        DependencyObject childObject = VisualTreeHelper.GetChild(parentObject, i);
        if (childObject == null)
        {
            continue;
        }

        var child = childObject as T;
        return child ?? FindVisualChild<T>(childObject);
    }

    return null;
}

Требуется, чтобы вы знали тип искомого элемента управления.

1 голос
/ 01 июля 2011

используйте VisualTree, если я правильно понял ваш вопрос.

см. Msdn: http://msdn.microsoft.com/en-us/library/dd409789.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...