방법: Dependency 속성의 기본값 복원
업데이트: 2007년 11월
이 예제에서는 ClearValue 메서드를 사용하여 종속성 속성 값을 기본값으로 다시 설정하는 방법을 보여 줍니다.
예제
다음 예제에서는 몇 가지 Shape 요소 형식에 대해 로컬로 설정된 속성 값을 제거합니다. 이 예제에 나와 있는 RestoreDefaultProperties 사용자 정의 메서드는 로컬로 설정된 모든 읽기/쓰기 종속성 속성을 찾아 하나씩 제거합니다. 이러한 속성의 로컬 값은 로드된 XAML 페이지(표시되지 않음)에서 XAML 특성 구문을 사용하여 설정되었습니다. RestoreDefaultProperties가 실행되면 각 속성의 유효 값이 해당 Shape 형식의 스타일에 포함되어 있는 Setter 값에 따라 결정됩니다.
종속성 속성의 기본값이 해당 종속성 속성의 메타데이터에 설정된 DefaultValue일 필요는 없습니다. 다른 요소가 계속 활성 상태이면 로컬 값이 제거된 후 해당 요소에서 유효 속성 값을 가져올 수 있습니다.
Private Sub RestoreDefaultProperties(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim uic As UIElementCollection = Sandbox.Children
For Each uie As Shape In uic
Dim locallySetProperties As LocalValueEnumerator = uie.GetLocalValueEnumerator()
While locallySetProperties.MoveNext()
Dim propertyToClear As DependencyProperty = locallySetProperties.Current.Property
If Not propertyToClear.ReadOnly Then
uie.ClearValue(propertyToClear)
End If
End While
Next
End Sub
void RestoreDefaultProperties(object sender, RoutedEventArgs e)
{
UIElementCollection uic = Sandbox.Children;
foreach (Shape uie in uic)
{
LocalValueEnumerator locallySetProperties = uie.GetLocalValueEnumerator();
while (locallySetProperties.MoveNext())
{
DependencyProperty propertyToClear = (DependencyProperty)locallySetProperties.Current.Property;
if (!propertyToClear.ReadOnly) { uie.ClearValue(propertyToClear); }
}
}
}
전체 샘플을 보려면 기본값 복원 샘플을 참조하십시오. 이 예제가 포함된 전체 샘플에는 각 Shape 형식에 대한 암시적 스타일이 포함되어 있습니다. ClearValue 호출에서 로컬 값을 제거하면 각 Shape의 스타일이 제거된 특정 속성의 속성 값을 결정합니다. 이러한 속성의 메타데이터 기반 DefaultValue는 스타일보다 값 결정 우선 순위가 낮기 때문에 값이 제거된 후에도 DefaultValue는 사용되지 않습니다. 종속성 속성의 값 우선 순위에 대한 자세한 내용은 종속성 속성 값 우선 순위를 참조하십시오. 스타일에서 값을 적용하는 방식을 확인하려면 기본값 복원 샘플을 실행해 보십시오.