Code:
/ 4.0 / 4.0 / 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. 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
- BitVec.cs
- SoapTypeAttribute.cs
- EntityDataSourceUtil.cs
- NotImplementedException.cs
- StartUpEventArgs.cs
- returneventsaver.cs
- WebBaseEventKeyComparer.cs
- DataGrid.cs
- ExecutionContext.cs
- PolicyException.cs
- templategroup.cs
- LineSegment.cs
- PKCS1MaskGenerationMethod.cs
- PropertyIDSet.cs
- ConstrainedDataObject.cs
- TemplateAction.cs
- Cursors.cs
- SeekStoryboard.cs
- DelegateHelpers.Generated.cs
- DocobjHost.cs
- IsolatedStorageSecurityState.cs
- DescendentsWalker.cs
- FunctionDescription.cs
- DataSourceCacheDurationConverter.cs
- ObjectTokenCategory.cs
- Section.cs
- GroupBox.cs
- LogEntry.cs
- ObjectViewListener.cs
- TdsParserSessionPool.cs
- CachingHintValidation.cs
- updatecommandorderer.cs
- BuildManager.cs
- TextParagraph.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- QuaternionAnimation.cs
- SQLRoleProvider.cs
- RegistrationProxy.cs
- SectionInformation.cs
- SplitContainer.cs
- PrintPageEvent.cs
- OrderedDictionaryStateHelper.cs
- TableStyle.cs
- PropertyMetadata.cs
- OleDbTransaction.cs
- Rule.cs
- Constant.cs
- DataDocumentXPathNavigator.cs
- DockPatternIdentifiers.cs
- DesignerFrame.cs
- SolidColorBrush.cs
- Label.cs
- ViewKeyConstraint.cs
- ProfileModule.cs
- UrlAuthFailedErrorFormatter.cs
- AuthenticationModuleElementCollection.cs
- VSWCFServiceContractGenerator.cs
- ConfigurationProperty.cs
- ExpressionBuilder.cs
- DataGridColumnCollection.cs
- DeviceOverridableAttribute.cs
- StreamUpdate.cs
- ClientBuildManagerCallback.cs
- ChtmlCommandAdapter.cs
- GridViewRowPresenter.cs
- MethodImplAttribute.cs
- FlowLayout.cs
- FacetDescriptionElement.cs
- CheckBoxStandardAdapter.cs
- TypeName.cs
- SqlInternalConnectionSmi.cs
- RelationalExpressions.cs
- UnknownBitmapDecoder.cs
- SqlFormatter.cs
- NameTable.cs
- MulticastNotSupportedException.cs
- OdbcCommandBuilder.cs
- ReadOnlyNameValueCollection.cs
- RadioButtonList.cs
- Lasso.cs
- GeneralTransform2DTo3D.cs
- EventPrivateKey.cs
- EntityDataSourceView.cs
- DataGridViewCellValueEventArgs.cs
- RichTextBoxConstants.cs
- SchemaImporter.cs
- ProbeDuplexAsyncResult.cs
- HierarchicalDataBoundControl.cs
- WrappingXamlSchemaContext.cs
- TextWriterEngine.cs
- ControlCachePolicy.cs
- FacetDescription.cs
- TreeNodeCollectionEditor.cs
- DBParameter.cs
- ControlCachePolicy.cs
- ThemeableAttribute.cs
- TdsValueSetter.cs
- WorkflowMarkupSerializer.cs
- ToolStripTextBox.cs
- SafeRightsManagementHandle.cs