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 问题是否不是只读的。

适用于

另请参阅