DependencyObject.GetLocalValueEnumerator 方法

定義

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

C#
public System.Windows.LocalValueEnumerator GetLocalValueEnumerator ();

傳回

LocalValueEnumerator

特定的區域數值列舉值。

範例

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

C#
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); }
        }
    }
}

備註

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

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

重要

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

適用於

產品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7

另請參閱