依赖属性是DependencyProperty类型的静态字段
static IEnumerable<FieldInfo> GetDependencyProperties(Type type)
{
var dependencyProperties = type.GetFields(BindingFlags.Static | BindingFlags.Public)
.Where(p => p.FieldType.Equals(typeof(DependencyProperty)));
return dependencyProperties;
}
如果您也想获取该控件的父级的依赖属性,则可以使用以下方法:
static IEnumerable<FieldInfo> GetDependencyProperties(Type type)
{
var properties = type.GetFields(BindingFlags.Static | BindingFlags.Public)
.Where(f=>f.FieldType == typeof(DependencyProperty));
if (type.BaseType != null)
properties = properties.Union(GetDependencyProperties(type.BaseType));
return properties;
}