Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- WebPartTransformerAttribute.cs
- MailAddressCollection.cs
- SafeBitVector32.cs
- DiffuseMaterial.cs
- ToolStripDropDownMenu.cs
- VisemeEventArgs.cs
- ScrollContentPresenter.cs
- SelectionRange.cs
- metadatamappinghashervisitor.cs
- PathSegment.cs
- TimeSpan.cs
- RuleSetBrowserDialog.cs
- nulltextnavigator.cs
- XPathNodeList.cs
- ToolStripGrip.cs
- XmlSchemaComplexContentExtension.cs
- OciEnlistContext.cs
- StylusOverProperty.cs
- XmlSchemaAll.cs
- GZipUtils.cs
- XPathNavigator.cs
- PropagatorResult.cs
- ValidationErrorEventArgs.cs
- ComAdminWrapper.cs
- StringHandle.cs
- DefaultValueConverter.cs
- ICollection.cs
- XmlNamespaceDeclarationsAttribute.cs
- WebPartTransformer.cs
- EllipseGeometry.cs
- TextEditorSelection.cs
- httpstaticobjectscollection.cs
- XmlMemberMapping.cs
- LinearGradientBrush.cs
- GlobalItem.cs
- VectorCollectionConverter.cs
- WeakHashtable.cs
- XmlEncoding.cs
- ArgumentValidation.cs
- RootAction.cs
- ScriptIgnoreAttribute.cs
- PrefixQName.cs
- ConsoleKeyInfo.cs
- ConditionChanges.cs
- ScaleTransform.cs
- NumberFormatInfo.cs
- FileVersionInfo.cs
- SigningCredentials.cs
- TemplateBindingExpression.cs
- GestureRecognitionResult.cs
- RuleSettingsCollection.cs
- diagnosticsswitches.cs
- DispatcherOperation.cs
- CacheSection.cs
- BamlRecordHelper.cs
- FlowDocumentView.cs
- NeedSkipTokenVisitor.cs
- ProcessDesigner.cs
- KeyboardDevice.cs
- ProtectedConfiguration.cs
- CodeTypeConstructor.cs
- Matrix3DStack.cs
- ToolstripProfessionalRenderer.cs
- Button.cs
- WizardDesigner.cs
- ToolStripContainer.cs
- RequestStatusBarUpdateEventArgs.cs
- BitmapEffectDrawing.cs
- WebBrowserNavigatedEventHandler.cs
- RsaSecurityTokenAuthenticator.cs
- DataGridCellEditEndingEventArgs.cs
- Sentence.cs
- PeerNameRecordCollection.cs
- DataGridLinkButton.cs
- BitmapSource.cs
- SecurityDocument.cs
- GridViewDeletedEventArgs.cs
- HttpListenerResponse.cs
- GridViewUpdatedEventArgs.cs
- SqlRecordBuffer.cs
- FileIOPermission.cs
- MsmqBindingMonitor.cs
- AssemblyBuilder.cs
- EDesignUtil.cs
- ActivityScheduledRecord.cs
- PasswordDeriveBytes.cs
- ExceptionValidationRule.cs
- NativeCppClassAttribute.cs
- QilLiteral.cs
- CacheDependency.cs
- XmlParserContext.cs
- XmlObjectSerializerContext.cs
- CompiledQueryCacheKey.cs
- XmlILModule.cs
- BaseValidator.cs
- LongTypeConverter.cs
- ParentQuery.cs
- Label.cs
- PreservationFileReader.cs
- IntellisenseTextBox.cs