Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / DeferredElementTreeState.cs / 1305600 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DbProviderSpecificTypePropertyAttribute.cs
- _BasicClient.cs
- ProjectionPlanCompiler.cs
- SequentialUshortCollection.cs
- CodeNamespaceImport.cs
- PropertyPathWorker.cs
- InvalidCommandTreeException.cs
- FormsAuthenticationModule.cs
- XmlSchemaInclude.cs
- EntityWrapperFactory.cs
- IERequestCache.cs
- ResourceExpressionBuilder.cs
- FontFamilyIdentifier.cs
- ProcessModelInfo.cs
- UpnEndpointIdentity.cs
- CorrelationTokenTypeConvertor.cs
- GridPattern.cs
- TypeSystemProvider.cs
- EntityDescriptor.cs
- RadioButton.cs
- TemplatePartAttribute.cs
- ConfigXmlElement.cs
- KnownTypesHelper.cs
- DetailsViewDeletedEventArgs.cs
- EntityDataSourceWizardForm.cs
- ColorConvertedBitmap.cs
- System.Data.OracleClient_BID.cs
- metadatamappinghashervisitor.cs
- ObjectConverter.cs
- Camera.cs
- MobileControlsSectionHelper.cs
- XXXInfos.cs
- ICspAsymmetricAlgorithm.cs
- WorkflowFormatterBehavior.cs
- Listbox.cs
- XmlNodeChangedEventArgs.cs
- WsatProxy.cs
- ProcessHostConfigUtils.cs
- XmlAnyElementAttributes.cs
- StringValidator.cs
- PersistenceException.cs
- ExceptionValidationRule.cs
- ResourceBinder.cs
- ServiceObjectContainer.cs
- InputLanguageProfileNotifySink.cs
- GlyphsSerializer.cs
- Win32SafeHandles.cs
- InputReport.cs
- RevocationPoint.cs
- CategoryGridEntry.cs
- CompModSwitches.cs
- HostedHttpTransportManager.cs
- DateTimeConverter2.cs
- DataServicePagingProviderWrapper.cs
- ListViewUpdatedEventArgs.cs
- WindowsGraphics.cs
- GridViewAutomationPeer.cs
- ConstructorArgumentAttribute.cs
- StrongNamePublicKeyBlob.cs
- BindingContext.cs
- HttpHandlerActionCollection.cs
- WebPartAddingEventArgs.cs
- SynchronizationContext.cs
- SecurityResources.cs
- FocusChangedEventArgs.cs
- followingquery.cs
- CookielessHelper.cs
- XPathNavigatorReader.cs
- GZipStream.cs
- RotateTransform.cs
- VisualTransition.cs
- CodeAttributeArgumentCollection.cs
- MILUtilities.cs
- DocumentEventArgs.cs
- HtmlProps.cs
- UiaCoreTypesApi.cs
- CannotUnloadAppDomainException.cs
- ReflectionPermission.cs
- TableColumn.cs
- StyleModeStack.cs
- CursorConverter.cs
- MimeReflector.cs
- FocusTracker.cs
- ToolStripDropDownButton.cs
- CompilerError.cs
- MappingModelBuildProvider.cs
- IndexingContentUnit.cs
- XmlToDatasetMap.cs
- CompiledAction.cs
- LookupNode.cs
- SymbolMethod.cs
- FocusTracker.cs
- UndoEngine.cs
- ByeMessageApril2005.cs
- MultipleViewPatternIdentifiers.cs
- CompatibleComparer.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- ControlValuePropertyAttribute.cs
- odbcmetadatacollectionnames.cs
- HyperlinkAutomationPeer.cs