Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / MS / Internal / DeferredElementTreeState.cs / 1 / DeferredElementTreeState.cs
using System.Windows; using System.Collections.Generic; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Media3D; namespace MS.Internal { internal class DeferredElementTreeState { public void SetCoreParent(DependencyObject element, DependencyObject parent) { if(!_oldCoreParents.ContainsKey(element)) { _oldCoreParents[element] = parent; } } public static DependencyObject GetCoreParent(DependencyObject element, DeferredElementTreeState treeState) { DependencyObject parent = null; if(treeState != null && treeState._oldCoreParents.ContainsKey(element)) { parent = treeState._oldCoreParents[element]; } else { Visual v = element as Visual; if(v != null) { parent = VisualTreeHelper.GetParent(v); } else { ContentElement ce = element as ContentElement; if(ce != null) { parent = ContentOperations.GetParent(ce); } else { Visual3D v3D = element as Visual3D; if (v3D != null) { parent = VisualTreeHelper.GetParent(v3D); } } } } return parent; } public static DependencyObject GetInputElementParent(DependencyObject element, DeferredElementTreeState treeState) { DependencyObject parent = element; while (true) { parent = GetCoreParent(parent, treeState); if (parent == null || InputElement.IsValid(parent)) { break; } } return parent; } public void SetLogicalParent(DependencyObject element, DependencyObject parent) { if(!_oldLogicalParents.ContainsKey(element)) { _oldLogicalParents[element] = parent; } } public static DependencyObject GetLogicalParent(DependencyObject element, DeferredElementTreeState treeState) { DependencyObject parent = null; if(treeState != null && treeState._oldLogicalParents.ContainsKey(element)) { parent = treeState._oldLogicalParents[element]; } else { UIElement e = element as UIElement; if(e != null) { parent = e.GetUIParentCore(); // Overriden by FrameworkElement. } ContentElement ce = element as ContentElement; if(ce != null) { parent = ce.GetUIParentCore(); // Overriden by FrameworkContentElement. } } return parent; } public void Clear() { _oldCoreParents.Clear(); _oldLogicalParents.Clear(); } public bool IsEmpty { get { return _oldCoreParents.Count > 0 || _oldLogicalParents.Count > 0; } } private Dictionary_oldCoreParents = new Dictionary (); private Dictionary _oldLogicalParents = new Dictionary (); } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System.Windows; using System.Collections.Generic; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Media3D; namespace MS.Internal { internal class DeferredElementTreeState { public void SetCoreParent(DependencyObject element, DependencyObject parent) { if(!_oldCoreParents.ContainsKey(element)) { _oldCoreParents[element] = parent; } } public static DependencyObject GetCoreParent(DependencyObject element, DeferredElementTreeState treeState) { DependencyObject parent = null; if(treeState != null && treeState._oldCoreParents.ContainsKey(element)) { parent = treeState._oldCoreParents[element]; } else { Visual v = element as Visual; if(v != null) { parent = VisualTreeHelper.GetParent(v); } else { ContentElement ce = element as ContentElement; if(ce != null) { parent = ContentOperations.GetParent(ce); } else { Visual3D v3D = element as Visual3D; if (v3D != null) { parent = VisualTreeHelper.GetParent(v3D); } } } } return parent; } public static DependencyObject GetInputElementParent(DependencyObject element, DeferredElementTreeState treeState) { DependencyObject parent = element; while (true) { parent = GetCoreParent(parent, treeState); if (parent == null || InputElement.IsValid(parent)) { break; } } return parent; } public void SetLogicalParent(DependencyObject element, DependencyObject parent) { if(!_oldLogicalParents.ContainsKey(element)) { _oldLogicalParents[element] = parent; } } public static DependencyObject GetLogicalParent(DependencyObject element, DeferredElementTreeState treeState) { DependencyObject parent = null; if(treeState != null && treeState._oldLogicalParents.ContainsKey(element)) { parent = treeState._oldLogicalParents[element]; } else { UIElement e = element as UIElement; if(e != null) { parent = e.GetUIParentCore(); // Overriden by FrameworkElement. } ContentElement ce = element as ContentElement; if(ce != null) { parent = ce.GetUIParentCore(); // Overriden by FrameworkContentElement. } } return parent; } public void Clear() { _oldCoreParents.Clear(); _oldLogicalParents.Clear(); } public bool IsEmpty { get { return _oldCoreParents.Count > 0 || _oldLogicalParents.Count > 0; } } private Dictionary _oldCoreParents = new Dictionary (); private Dictionary _oldLogicalParents = new Dictionary (); } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HtmlHead.cs
- LocalizationCodeDomSerializer.cs
- ContextMarshalException.cs
- DefaultValueTypeConverter.cs
- GroupedContextMenuStrip.cs
- ThreadExceptionDialog.cs
- SizeChangedInfo.cs
- SetterTriggerConditionValueConverter.cs
- AttributeCollection.cs
- FileDialog.cs
- IPPacketInformation.cs
- ImageCollectionEditor.cs
- SecurityPolicySection.cs
- SafeArrayTypeMismatchException.cs
- HttpConfigurationContext.cs
- NetworkCredential.cs
- RegularExpressionValidator.cs
- SystemFonts.cs
- ListViewSortEventArgs.cs
- sqlinternaltransaction.cs
- Container.cs
- SerializationTrace.cs
- TraversalRequest.cs
- EntityDataSourceUtil.cs
- PublisherIdentityPermission.cs
- ConfigurationManagerHelperFactory.cs
- AuthenticationException.cs
- OledbConnectionStringbuilder.cs
- ZoomPercentageConverter.cs
- SessionState.cs
- HostingEnvironmentSection.cs
- BinaryFormatter.cs
- EFAssociationProvider.cs
- QueryTreeBuilder.cs
- WmlFormAdapter.cs
- StartFileNameEditor.cs
- SourceLineInfo.cs
- RenderCapability.cs
- GenericTextProperties.cs
- TrackingMemoryStream.cs
- ImageInfo.cs
- Walker.cs
- MetadataUtilsSmi.cs
- TypeUsageBuilder.cs
- Evaluator.cs
- IndexedEnumerable.cs
- SqlException.cs
- AnimatedTypeHelpers.cs
- DataGridViewCellEventArgs.cs
- UnsafeNativeMethodsMilCoreApi.cs
- BadImageFormatException.cs
- MeasureData.cs
- SiteMapNode.cs
- CounterCreationDataConverter.cs
- Application.cs
- QilTargetType.cs
- ChangeInterceptorAttribute.cs
- PolicyDesigner.cs
- WmiPutTraceRecord.cs
- AlternateView.cs
- InlineUIContainer.cs
- BaseCollection.cs
- SortFieldComparer.cs
- ParenExpr.cs
- BuildDependencySet.cs
- CompositeControl.cs
- InternalTypeHelper.cs
- ValidatingReaderNodeData.cs
- WrappedIUnknown.cs
- XmlIlTypeHelper.cs
- PowerEase.cs
- BehaviorEditorPart.cs
- InvokeWebService.cs
- WebPartUserCapability.cs
- AppDomainUnloadedException.cs
- CommandManager.cs
- BindingNavigator.cs
- RadioButton.cs
- DigestTraceRecordHelper.cs
- FacetValues.cs
- ExpressionBindingCollection.cs
- TimeSpan.cs
- SchemaCollectionCompiler.cs
- PointAnimationBase.cs
- ParameterCollection.cs
- WebPartConnectionsCancelEventArgs.cs
- CodeDirectiveCollection.cs
- DBSqlParserColumn.cs
- Matrix3DConverter.cs
- DataObject.cs
- AutomationPeer.cs
- DirectoryInfo.cs
- ResourceDescriptionAttribute.cs
- ResourceWriter.cs
- ZipIOExtraFieldElement.cs
- ProcessHostConfigUtils.cs
- WorkflowDesignerMessageFilter.cs
- ListItemCollection.cs
- MediaSystem.cs
- DebugView.cs