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
- RecipientInfo.cs
- SoapMessage.cs
- XmlDataLoader.cs
- XmlSchemaAll.cs
- TextClipboardData.cs
- ParenthesizePropertyNameAttribute.cs
- CachingHintValidation.cs
- MeasureData.cs
- SignedInfo.cs
- AudioFormatConverter.cs
- MenuItemCollection.cs
- ResXFileRef.cs
- HttpProfileBase.cs
- FormsAuthenticationEventArgs.cs
- TextBoxBase.cs
- SchemaElementLookUpTableEnumerator.cs
- DispatcherExceptionEventArgs.cs
- IndexedEnumerable.cs
- MeshGeometry3D.cs
- KnownTypes.cs
- LowerCaseStringConverter.cs
- FixedSOMPageElement.cs
- RoutingService.cs
- AmbientLight.cs
- ProcessHostServerConfig.cs
- EncoderFallback.cs
- tibetanshape.cs
- MulticastNotSupportedException.cs
- TrustManagerPromptUI.cs
- Border.cs
- TextReturnReader.cs
- ConfigsHelper.cs
- _ChunkParse.cs
- HashHelper.cs
- ItemContainerGenerator.cs
- AppDomainAttributes.cs
- AsyncStreamReader.cs
- XmlSchemaAttributeGroupRef.cs
- CodeDOMUtility.cs
- DateTimeOffset.cs
- PeerApplicationLaunchInfo.cs
- MergeLocalizationDirectives.cs
- CollectionType.cs
- IssuanceLicense.cs
- ColumnPropertiesGroup.cs
- OleDbParameterCollection.cs
- RoutedUICommand.cs
- SqlGenericUtil.cs
- LogEntrySerialization.cs
- ScrollEvent.cs
- LineInfo.cs
- SamlAdvice.cs
- MenuItem.cs
- StrokeRenderer.cs
- ObjectReferenceStack.cs
- TaiwanCalendar.cs
- TextTrailingCharacterEllipsis.cs
- CodeGeneratorAttribute.cs
- DateTimeUtil.cs
- OSFeature.cs
- TypeValidationEventArgs.cs
- SmiEventSink_DeferedProcessing.cs
- Single.cs
- WebScriptMetadataMessageEncoderFactory.cs
- AutomationElement.cs
- XmlImplementation.cs
- Types.cs
- CompilerError.cs
- StandardCommands.cs
- UserControlCodeDomTreeGenerator.cs
- ListManagerBindingsCollection.cs
- Focus.cs
- DockPattern.cs
- ValueSerializerAttribute.cs
- NamedElement.cs
- BindingOperations.cs
- WindowsFormsLinkLabel.cs
- SHA256Managed.cs
- GroupBoxAutomationPeer.cs
- DragCompletedEventArgs.cs
- FileClassifier.cs
- SoapHttpTransportImporter.cs
- NonBatchDirectoryCompiler.cs
- iisPickupDirectory.cs
- JapaneseLunisolarCalendar.cs
- AnalyzedTree.cs
- PartitionedDataSource.cs
- ToolStripGrip.cs
- BitmapInitialize.cs
- FileDialog_Vista.cs
- DataGridHeaderBorder.cs
- TraceHwndHost.cs
- InstalledFontCollection.cs
- SafeSecurityHandles.cs
- GradientStop.cs
- DesignerAttributeInfo.cs
- ClientTargetSection.cs
- DataGridViewRowsAddedEventArgs.cs
- SimpleApplicationHost.cs
- GregorianCalendarHelper.cs