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
- templategroup.cs
- NumberAction.cs
- Currency.cs
- Base64Stream.cs
- QueryStringHandler.cs
- ObjectSecurityT.cs
- XmlSchemaObject.cs
- IndexedSelectQueryOperator.cs
- _FtpControlStream.cs
- BufferedStream.cs
- QilFunction.cs
- InstanceKeyCollisionException.cs
- ListBindableAttribute.cs
- SemanticValue.cs
- DefaultDiscoveryServiceExtension.cs
- FileUtil.cs
- StringCollection.cs
- DeviceContexts.cs
- BaseTemplateParser.cs
- IntSecurity.cs
- CheckPair.cs
- ScriptingAuthenticationServiceSection.cs
- DrawingContextDrawingContextWalker.cs
- LabelAutomationPeer.cs
- InputEventArgs.cs
- SafeEventHandle.cs
- AppLevelCompilationSectionCache.cs
- FunctionImportElement.cs
- StorageMappingItemLoader.cs
- ReadOnlyMetadataCollection.cs
- CodeTypeConstructor.cs
- MailMessage.cs
- QilName.cs
- XmlSchemaAnnotated.cs
- SqlComparer.cs
- MatchSingleFxEngineOpcode.cs
- XmlIlGenerator.cs
- ObjectContextServiceProvider.cs
- LinkAreaEditor.cs
- DispatcherTimer.cs
- TextEditorTables.cs
- BaseCodePageEncoding.cs
- OracleCommandSet.cs
- UnsafeNativeMethods.cs
- PartBasedPackageProperties.cs
- UpDownBaseDesigner.cs
- RadioButtonBaseAdapter.cs
- RegexCharClass.cs
- EditingCoordinator.cs
- DeleteWorkflowOwnerCommand.cs
- SchemaCollectionPreprocessor.cs
- WebPartPersonalization.cs
- XmlLoader.cs
- AdPostCacheSubstitution.cs
- ServiceDurableInstance.cs
- SlotInfo.cs
- ListViewDeleteEventArgs.cs
- DiagnosticsElement.cs
- ReverseQueryOperator.cs
- StyleBamlRecordReader.cs
- PrePostDescendentsWalker.cs
- Enum.cs
- RuleInfoComparer.cs
- SoapEnumAttribute.cs
- SmiTypedGetterSetter.cs
- DeferredReference.cs
- FileSystemInfo.cs
- SiteMap.cs
- EnumBuilder.cs
- IItemContainerGenerator.cs
- VariableAction.cs
- DataGridViewCheckBoxColumn.cs
- BamlRecords.cs
- RecognitionResult.cs
- SystemThemeKey.cs
- PagerStyle.cs
- XmlIlGenerator.cs
- MetadataPropertyCollection.cs
- LexicalChunk.cs
- HttpModulesSection.cs
- DropSource.cs
- HandledMouseEvent.cs
- ServiceMetadataExtension.cs
- InvalidPrinterException.cs
- BoundsDrawingContextWalker.cs
- TemplatePartAttribute.cs
- GeneralTransform3DGroup.cs
- WeakReadOnlyCollection.cs
- BadImageFormatException.cs
- HttpListener.cs
- PropertyItemInternal.cs
- ConsumerConnectionPoint.cs
- CallbackTimeoutsBehavior.cs
- ICollection.cs
- UpWmlMobileTextWriter.cs
- XmlTypeMapping.cs
- SqlUDTStorage.cs
- QilInvokeLateBound.cs
- TextEvent.cs
- PeerName.cs