2011-05-03 44 views

回答

4

这将检索的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类,但不是所有UI元素都从它继承。大多数“控制”从FrameworkElement继承(直接或间接)。

+1

我认为你的意思是'GetTypes',而不是'GetType'。 – 2011-05-03 09:49:37

+0

@Matti Virkkunen,谢谢,修复 – 2011-05-03 09:50:54

+0

谢谢,这两个答案工作一个治疗:) – lookitskris 2011-05-09 10:36:13

0

如果你真的想所有他们,你可以使用反射搜索相关的程序集,并找到从控制基类继承的任何具体类。

0
var names = typeof(FrameworkElement) 
    .Assembly 
    .GetExportedTypes() 
    .Where(x => x.IsSubclassOf(typeof(FrameworkElement))) 
    .Select(x => x.Name); 
相关问题