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
- FrameworkTemplate.cs
- KerberosReceiverSecurityToken.cs
- CellCreator.cs
- EntityContainerEmitter.cs
- SoapExtensionTypeElement.cs
- ReferentialConstraint.cs
- ActivityValidator.cs
- CalendarDataBindingHandler.cs
- FullTextLine.cs
- WrapperSecurityCommunicationObject.cs
- URLIdentityPermission.cs
- CodeDirectionExpression.cs
- DataServiceBuildProvider.cs
- SystemWebExtensionsSectionGroup.cs
- LogicalExpressionTypeConverter.cs
- ProgressBarAutomationPeer.cs
- WriteableBitmap.cs
- TypeForwardedToAttribute.cs
- HitTestParameters3D.cs
- GridToolTip.cs
- SchemaSetCompiler.cs
- SafeNativeMethods.cs
- ResourceSetExpression.cs
- SweepDirectionValidation.cs
- SelectionEditingBehavior.cs
- UnaryExpression.cs
- ServicesUtilities.cs
- ProgressBar.cs
- RangeContentEnumerator.cs
- SpanIndex.cs
- DataObject.cs
- SafeNativeMethods.cs
- BitmapEffectInputData.cs
- CatchBlock.cs
- InternalResources.cs
- Compiler.cs
- SiteIdentityPermission.cs
- TypedTableHandler.cs
- ThumbButtonInfoCollection.cs
- _ChunkParse.cs
- SingleObjectCollection.cs
- Rotation3D.cs
- ContextMarshalException.cs
- Buffer.cs
- HtmlElementEventArgs.cs
- UnknownExceptionActionHelper.cs
- BlurBitmapEffect.cs
- Deflater.cs
- WorkflowViewElement.cs
- DbProviderFactory.cs
- ScrollViewerAutomationPeer.cs
- RestHandlerFactory.cs
- QilStrConcatenator.cs
- QuaternionRotation3D.cs
- FrameworkEventSource.cs
- VisualStyleInformation.cs
- UIElement3D.cs
- WeakReferenceKey.cs
- Stack.cs
- InstanceLockQueryResult.cs
- HttpRuntimeSection.cs
- DefaultSection.cs
- webclient.cs
- SqlDataAdapter.cs
- DataView.cs
- DataBindingExpressionBuilder.cs
- StylusEditingBehavior.cs
- InvokerUtil.cs
- CheckBoxRenderer.cs
- autovalidator.cs
- DataGridViewRowPostPaintEventArgs.cs
- ItemCollection.cs
- Application.cs
- SqlCrossApplyToCrossJoin.cs
- ApplicationSecurityInfo.cs
- PageThemeParser.cs
- SqlStatistics.cs
- HtmlDocument.cs
- FillBehavior.cs
- XmlResolver.cs
- DataGridViewRowsRemovedEventArgs.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- prompt.cs
- AnnotationComponentChooser.cs
- ClientOperationFormatterProvider.cs
- Splitter.cs
- TypeConstant.cs
- TextSpan.cs
- ErrorHandlingReceiver.cs
- SoapExtension.cs
- SingleQueryOperator.cs
- LabelLiteral.cs
- DecimalAverageAggregationOperator.cs
- WebPartUtil.cs
- ChameleonKey.cs
- FocusTracker.cs
- PeerToPeerException.cs
- SchemaTypeEmitter.cs
- OletxDependentTransaction.cs
- ImageCodecInfo.cs