Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- VisualStyleTypesAndProperties.cs
- PolicyStatement.cs
- StructuredTypeInfo.cs
- TraceData.cs
- HitTestDrawingContextWalker.cs
- FileVersion.cs
- TypeInformation.cs
- IdentityModelDictionary.cs
- NodeCounter.cs
- DataListItem.cs
- _AutoWebProxyScriptHelper.cs
- SamlConditions.cs
- KeyInterop.cs
- PocoPropertyAccessorStrategy.cs
- DataTableNewRowEvent.cs
- WindowsSlider.cs
- DuplicateWaitObjectException.cs
- Byte.cs
- BaseAddressPrefixFilterElement.cs
- ErrorRuntimeConfig.cs
- CreateUserWizard.cs
- AdornerPresentationContext.cs
- HtmlInputControl.cs
- UnsafePeerToPeerMethods.cs
- FontSizeConverter.cs
- OverloadGroupAttribute.cs
- BinaryObjectInfo.cs
- TextModifier.cs
- ScrollableControl.cs
- CharEnumerator.cs
- ItemCheckEvent.cs
- HwndSourceKeyboardInputSite.cs
- InteropExecutor.cs
- StubHelpers.cs
- XmlnsCache.cs
- HuffCodec.cs
- ProviderException.cs
- ImageField.cs
- OSFeature.cs
- TypeAccessException.cs
- TransformCollection.cs
- DPTypeDescriptorContext.cs
- DesignTimeDataBinding.cs
- SafeRightsManagementPubHandle.cs
- FontSourceCollection.cs
- Int16.cs
- PerformanceCounter.cs
- PassportAuthenticationModule.cs
- Guid.cs
- XmlDataImplementation.cs
- CompilerCollection.cs
- FileDataSourceCache.cs
- WebPartTransformer.cs
- CfgParser.cs
- TableItemPatternIdentifiers.cs
- ListViewEditEventArgs.cs
- TextTreeRootNode.cs
- AdPostCacheSubstitution.cs
- ObjectListDataBindEventArgs.cs
- COM2PictureConverter.cs
- EFDataModelProvider.cs
- DetailsViewRowCollection.cs
- ChameleonKey.cs
- InheritanceContextHelper.cs
- SpellerStatusTable.cs
- ClientSettingsProvider.cs
- ErrorFormatter.cs
- StreamUpdate.cs
- XmlRawWriter.cs
- ChooseAction.cs
- XmlSchemaType.cs
- OptionalRstParameters.cs
- ListItemConverter.cs
- ComplexBindingPropertiesAttribute.cs
- BaseDataListActionList.cs
- MethodExpr.cs
- XPathDocumentBuilder.cs
- MatrixUtil.cs
- DbConnectionPoolGroup.cs
- OleDbSchemaGuid.cs
- FilteredSchemaElementLookUpTable.cs
- Part.cs
- RadioButtonStandardAdapter.cs
- SchemaTypeEmitter.cs
- Qualifier.cs
- GroupQuery.cs
- ModifiableIteratorCollection.cs
- SpecularMaterial.cs
- LocalizationComments.cs
- DocumentXmlWriter.cs
- SoundPlayerAction.cs
- TemplateControlParser.cs
- GridViewRowPresenter.cs
- HtmlInputControl.cs
- AppliedDeviceFiltersEditor.cs
- StickyNoteHelper.cs
- CroppedBitmap.cs
- XmlMemberMapping.cs
- CodePropertyReferenceExpression.cs
- OpCopier.cs