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 に答える