DependencyObject.GetLocalValueEnumerator 方法

定義

建立特定的列舉值,以判斷哪些相依性屬性在此 DependencyObject 上具有本機設定的值。

public:
 System::Windows::LocalValueEnumerator GetLocalValueEnumerator();
public System.Windows.LocalValueEnumerator GetLocalValueEnumerator ();
member this.GetLocalValueEnumerator : unit -> System.Windows.LocalValueEnumerator
Public Function GetLocalValueEnumerator () As LocalValueEnumerator

傳回

LocalValueEnumerator

特定的區域數值列舉值。

範例

下列範例會逐一查看物件上設定本機值的所有屬性,然後呼叫 ClearValue 以清除每個這類屬性的值。

void RestoreDefaultProperties(object sender, RoutedEventArgs e)
{
    UIElementCollection uic = Sandbox.Children;
    foreach (Shape uie in uic)
    {
        LocalValueEnumerator locallySetProperties = uie.GetLocalValueEnumerator();
        while (locallySetProperties.MoveNext())
        {
            DependencyProperty propertyToClear = locallySetProperties.Current.Property;
            if (!propertyToClear.ReadOnly) { uie.ClearValue(propertyToClear); }
        }
    }
}
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

備註

本機值 是 所 SetValue 設定的任何相依性屬性值,而不是屬性系統的其他層面。

LocalValueEnumerator呼叫 GetLocalValueEnumerator 取得的 可用來列舉實例上 DependencyObject 具有本機設定值的屬性。 每個這類屬性都會由 LocalValueEntry 物件在列舉值中表示,其具有參考特定 DependencyProperty 及其值的屬性。 透過本機設定值列舉的這項技術可用於優化,或用於其他本機值的處理,例如,判斷 的屬性值 DependencyObject 在清除時會變更。

重要

傳回的 LocalValueEnumerator 可能包含 LocalValueEntry 唯讀相依性屬性的記錄,或屬性系統計算值的相依性屬性。 例如,透過版面配置建立寬度的視覺化架構專案會報告 的 ActualWidth 本機值。 如果您要取得本機值以重設這些值,請檢查 ReadOnly 每個 LocalValueEntry 屬性識別碼上的值,以確認 DependencyProperty 有問題的 不是唯讀的。

適用於

另請參閱