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
- SchemaAttDef.cs
- TableHeaderCell.cs
- OracleDateTime.cs
- HelpKeywordAttribute.cs
- Solver.cs
- SQLGuid.cs
- WpfGeneratedKnownProperties.cs
- AccessControlList.cs
- ListParagraph.cs
- ProfileGroupSettingsCollection.cs
- XmlDocument.cs
- DetailsViewModeEventArgs.cs
- CodeCompileUnit.cs
- UriExt.cs
- PerformanceCounters.cs
- MessageLogTraceRecord.cs
- PackageDigitalSignature.cs
- DataGridViewColumnHeaderCell.cs
- Encoder.cs
- FragmentQueryProcessor.cs
- XmlHierarchicalEnumerable.cs
- ActiveXContainer.cs
- RandomDelayQueuedSendsAsyncResult.cs
- ObjectDataSourceStatusEventArgs.cs
- StylusTouchDevice.cs
- cookiecollection.cs
- XPathNode.cs
- FileNotFoundException.cs
- FrugalMap.cs
- StubHelpers.cs
- Activity.cs
- MultitargetUtil.cs
- OperatingSystem.cs
- HGlobalSafeHandle.cs
- FilterQuery.cs
- AuthenticationService.cs
- CodeMemberMethod.cs
- TypeSystemProvider.cs
- _AutoWebProxyScriptHelper.cs
- SafeEventLogWriteHandle.cs
- SqlDataSource.cs
- XmlSchemaAll.cs
- ScrollItemPattern.cs
- CodeExporter.cs
- Encoding.cs
- ListViewInsertEventArgs.cs
- Compilation.cs
- BamlReader.cs
- NamespaceQuery.cs
- DataBoundControl.cs
- HostedHttpRequestAsyncResult.cs
- SqlTopReducer.cs
- PinnedBufferMemoryStream.cs
- DataGridViewCellStyle.cs
- NativeMethods.cs
- SafeNativeMemoryHandle.cs
- CommentAction.cs
- _ListenerResponseStream.cs
- AnimationLayer.cs
- TextBoxView.cs
- MediaElementAutomationPeer.cs
- ObjectNavigationPropertyMapping.cs
- ISessionStateStore.cs
- ToolStripSeparatorRenderEventArgs.cs
- CodeMemberProperty.cs
- PersonalizationStateInfoCollection.cs
- Point3DValueSerializer.cs
- URLString.cs
- XmlILConstructAnalyzer.cs
- Pair.cs
- SwitchLevelAttribute.cs
- ResourceFallbackManager.cs
- XmlIlTypeHelper.cs
- InheritedPropertyChangedEventArgs.cs
- SmtpNtlmAuthenticationModule.cs
- Compiler.cs
- IItemProperties.cs
- RangeEnumerable.cs
- HttpServerUtilityWrapper.cs
- Codec.cs
- ResourceAttributes.cs
- UniqueID.cs
- OletxVolatileEnlistment.cs
- VisualProxy.cs
- StrokeFIndices.cs
- ObjectDataSourceFilteringEventArgs.cs
- SystemIPInterfaceStatistics.cs
- uribuilder.cs
- CustomTypeDescriptor.cs
- GlobalDataBindingHandler.cs
- ProjectionQueryOptionExpression.cs
- BitmapCacheBrush.cs
- WindowsListViewItemCheckBox.cs
- SystemWebSectionGroup.cs
- DiscoveryService.cs
- Image.cs
- UrlAuthFailedErrorFormatter.cs
- ScrollableControl.cs
- CacheOutputQuery.cs
- MessageQueueKey.cs