} // WindowClosing // ---------------------------------------------------------------------- private DependencyPropertySetting CreateSetting(string name, DependencyProperty dependencyProperty) { DependencyPropertySetting propertySetting = new DependencyPropertySetting(name, window, dependencyProperty); propertySetting.ValueSaving += ValueSaving; return(propertySetting); } // CreateSetting
} // Collect // ---------------------------------------------------------------------- private void Collect(DependencyObject currentObject, bool recursive) { foreach (object child in LogicalTreeHelper.GetChildren(currentObject)) { DependencyObject dependencyObject = child as DependencyObject; if (dependencyObject == null) { continue; } FrameworkElement frameworkElement = child as FrameworkElement; if (frameworkElement != null) { bool add = dependencyProperty.OwnerType.IsAssignableFrom(frameworkElement.GetType()); if (add && string.IsNullOrEmpty(frameworkElement.Name)) { add = false; Debug.WriteLine("DependencyPropertySettingCollector: missing name for framework element " + frameworkElement); } if (add && !OnCollectingSetting(frameworkElement)) { add = false; } if (add) { string settingName = string.Concat(frameworkElement.Name, ".", dependencyProperty.Name); DependencyPropertySetting dependencyPropertySetting = new DependencyPropertySetting(settingName, frameworkElement, dependencyProperty); dependencyPropertySetting.DefaultValue = dependencyPropertySetting.Value; ApplicationSettings.Settings.Add(dependencyPropertySetting); } } if (recursive) { Collect(dependencyObject, true); } } } // Collect
} // Collect // ---------------------------------------------------------------------- private void Collect(DependencyObject currentObject, bool recursive) { foreach (object child in LogicalTreeHelper.GetChildren(currentObject)) { DependencyObject dependencyObject = child as DependencyObject; if (dependencyObject == null) { continue; } FrameworkElement frameworkElement = child as FrameworkElement; if (frameworkElement != null) { bool add = dependencyProperty.OwnerType.IsAssignableFrom(frameworkElement.GetType()); if (add && string.IsNullOrEmpty(frameworkElement.Name)) { add = false; Debug.WriteLine("DependencyPropertySettingCollector: missing name for framework element " + frameworkElement); } if (add && !OnCollectingSetting(frameworkElement)) { add = false; } if (add) { string settingName = string.Concat(frameworkElement.Name, ".", dependencyProperty.Name); DependencyPropertySetting dependencyPropertySetting = new DependencyPropertySetting(settingName, frameworkElement, dependencyProperty); dependencyPropertySetting.DefaultValue = dependencyPropertySetting.Value; ApplicationSettings.Settings.Add(dependencyPropertySetting); } } if (recursive) { Collect(dependencyObject, true); } } } // Collect
} // WindowClosing // ---------------------------------------------------------------------- private DependencyPropertySetting CreateSetting(string name, DependencyProperty dependencyProperty) { DependencyPropertySetting propertySetting = new DependencyPropertySetting(name, window, dependencyProperty); propertySetting.ValueSaving += ValueSaving; return propertySetting; } // CreateSetting