如何获取DependencyProperty的默认值

Iev*_*ida 4 c# wpf dependency-properties properties wpf-controls

我有问题通过按钮单击默认设置所有控件值.设置样式时,这不起作用的问题.

例如,我有代码:

               var metadata = dependencyProperty.DefaultMetadata;

                if (value == null)
                {
                    return metadata.DefaultValue == value;
                }
                else
                {
                    return value.Equals(metadata.DefaultValue);
                }
Run Code Online (Sandbox Code Playgroud)

但这实际上不是默认属性!因为在样式中可以设置其他值!如何获得真正的"默认"控制权限!?那么WPF也会从样式返回值,如果这样设置的话?

Ps ClearValue(propertyToClear); 不能使用,因为在某些情况下我需要检查值.

Cle*_*ens 13

不同的依赖项对象类型可能有不同的元数据.因此,您必须通过其中一个GetMetadata重载获取特定类型的属性元数据.

var metadata = dependencyProperty.GetMetadata(typeof(SomeDependencyObject));
var defaultValue = metadata.DefaultValue;
Run Code Online (Sandbox Code Playgroud)