Программно получить список элементов управления, которые поставляются с .NET 4.0 - PullRequest
0 голосов
/ 03 мая 2011

Я собираюсь создать список всех элементов управления WPF, которые поставляются с .NET 4. В идеале этот список должен представлять собой набор строковых объектов таких элементов, как «Button», «ListBox» и т. Д.

Любая помощь будет высоко ценится!

Kris

Ответы [ 3 ]

4 голосов
/ 03 мая 2011

При этом будут извлечены все подклассы FrameworkElement в сборке PresentationFramework

var query =
    from type in typeof(FrameworkElement).Assembly.GetTypes()
    where type.IsSubclassOf(typeof(FrameworkElement))
    select type.Name;

List<string> controls = query.ToList();

Примечание: не очень четкое определение того, что такое «контроль» в WPF ... тамкласс Control, но не все элементы пользовательского интерфейса наследуются от него.Большинство «элементов управления» наследуют (прямо или косвенно) от FrameworkElement.

0 голосов
/ 03 мая 2011
var names = typeof(FrameworkElement)
    .Assembly
    .GetExportedTypes()
    .Where(x => x.IsSubclassOf(typeof(FrameworkElement)))
    .Select(x => x.Name);
0 голосов
/ 03 мая 2011

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

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