Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / MS / Internal / DeferredElementTreeState.cs / 2 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RegularExpressionValidator.cs
- OptimizerPatterns.cs
- EmbossBitmapEffect.cs
- LinearGradientBrush.cs
- ThreadAbortException.cs
- EntityDataSourceSelectingEventArgs.cs
- CodeVariableDeclarationStatement.cs
- TypeConverterAttribute.cs
- MULTI_QI.cs
- InputLanguageCollection.cs
- InputBinding.cs
- HttpHandlersInstallComponent.cs
- XPathDocument.cs
- ComponentConverter.cs
- Deserializer.cs
- ScriptModule.cs
- DriveInfo.cs
- DomainUpDown.cs
- StringValidatorAttribute.cs
- ProviderUtil.cs
- ObjectHandle.cs
- SuppressMergeCheckAttribute.cs
- HttpException.cs
- Vector.cs
- StreamWithDictionary.cs
- FontSource.cs
- SerialPort.cs
- SqlFileStream.cs
- PowerStatus.cs
- WindowsAuthenticationModule.cs
- DbXmlEnabledProviderManifest.cs
- PasswordRecovery.cs
- parserscommon.cs
- XmlAtomicValue.cs
- FormViewDeleteEventArgs.cs
- IItemContainerGenerator.cs
- PropertyBuilder.cs
- RepeatInfo.cs
- SecurityPermission.cs
- ClientSideQueueItem.cs
- ZipIOLocalFileDataDescriptor.cs
- OleDbSchemaGuid.cs
- Configuration.cs
- Comparer.cs
- SystemKeyConverter.cs
- _ProxyChain.cs
- Point4D.cs
- PositiveTimeSpanValidatorAttribute.cs
- TcpPortSharing.cs
- MailAddress.cs
- PersistNameAttribute.cs
- ProtectedProviderSettings.cs
- StyleCollectionEditor.cs
- Scene3D.cs
- CompleteWizardStep.cs
- SafeProcessHandle.cs
- SqlBulkCopyColumnMapping.cs
- SourceSwitch.cs
- SemanticBasicElement.cs
- ComponentFactoryHelpers.cs
- MultiSelector.cs
- HttpDictionary.cs
- DataGridViewRowStateChangedEventArgs.cs
- ItemList.cs
- EdmComplexPropertyAttribute.cs
- BaseValidatorDesigner.cs
- Window.cs
- ToolStripButton.cs
- UnaryOperationBinder.cs
- ListViewUpdateEventArgs.cs
- SmiContextFactory.cs
- CodeAccessSecurityEngine.cs
- ScaleTransform3D.cs
- ISFTagAndGuidCache.cs
- CodeDomLocalizationProvider.cs
- SHA384CryptoServiceProvider.cs
- WebPartsSection.cs
- FilteredReadOnlyMetadataCollection.cs
- OleStrCAMarshaler.cs
- HtmlInputHidden.cs
- DataContext.cs
- OdbcConnectionStringbuilder.cs
- ThemeInfoAttribute.cs
- RelationshipFixer.cs
- Unit.cs
- ClosureBinding.cs
- HtmlTableCellCollection.cs
- HttpConfigurationSystem.cs
- DataControlReference.cs
- TreeNodeClickEventArgs.cs
- XmlSchemaType.cs
- BrowserDefinitionCollection.cs
- HtmlButton.cs
- BevelBitmapEffect.cs
- VariableQuery.cs
- TimelineGroup.cs
- WebConfigurationFileMap.cs
- StrongNameMembershipCondition.cs
- DataMemberFieldEditor.cs
- MemoryResponseElement.cs