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 有問題的 不是唯讀的。