4

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

例如我有代码:

               var metadata = dependencyProperty.DefaultMetadata;

                if (value == null)
                {
                    return metadata.DefaultValue == value;
                }
                else
                {
                    return value.Equals(metadata.DefaultValue);
                }

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

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

4

1 回答 1

14

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

var metadata = dependencyProperty.GetMetadata(typeof(SomeDependencyObject));
var defaultValue = metadata.DefaultValue;
于 2012-08-02T06:48:26.250 回答