DependencyObject.GetLocalValueEnumerator 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
创建一个专用的枚举数,用于确定哪些依赖项属性在此 DependencyObject 上具有以本地方式设置的值。
public:
System::Windows::LocalValueEnumerator GetLocalValueEnumerator();
public System.Windows.LocalValueEnumerator GetLocalValueEnumerator ();
member this.GetLocalValueEnumerator : unit -> System.Windows.LocalValueEnumerator
Public Function GetLocalValueEnumerator () As 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 问题是否不是只读的。