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
- FixedSOMPageElement.cs
- ImageMapEventArgs.cs
- DesignerCommandAdapter.cs
- AmbientLight.cs
- SqlTriggerAttribute.cs
- DynamicActivityProperty.cs
- OdbcCommand.cs
- HttpHandlerAction.cs
- MaterialGroup.cs
- WsrmFault.cs
- DataServiceBuildProvider.cs
- DetailsViewModeEventArgs.cs
- GroupBox.cs
- IntSecurity.cs
- SignedInfo.cs
- Crypto.cs
- ClientApiGenerator.cs
- Input.cs
- MetadataItemEmitter.cs
- NamedPipeProcessProtocolHandler.cs
- GridViewEditEventArgs.cs
- Primitive.cs
- RotateTransform3D.cs
- SystemResourceHost.cs
- Asn1IntegerConverter.cs
- MenuItemCollection.cs
- BindingExpression.cs
- DbConnectionOptions.cs
- DataGridCommandEventArgs.cs
- AuthorizationRuleCollection.cs
- DataGridColumnHeadersPresenterAutomationPeer.cs
- GregorianCalendarHelper.cs
- DefaultValueTypeConverter.cs
- StringUtil.cs
- DrawingCollection.cs
- WorkflowInstanceQuery.cs
- BufferedWebEventProvider.cs
- NumericPagerField.cs
- HttpConfigurationContext.cs
- WebConfigurationManager.cs
- DataGridSortingEventArgs.cs
- ObjectDataProvider.cs
- SelectionManager.cs
- precedingquery.cs
- SAPICategories.cs
- CaseStatementSlot.cs
- WorkflowRuntimeService.cs
- EtwTrace.cs
- newitemfactory.cs
- LassoHelper.cs
- UnitySerializationHolder.cs
- Rect.cs
- JsonDataContract.cs
- OracleParameter.cs
- SecurityTokenRequirement.cs
- RegexGroupCollection.cs
- SoapSchemaImporter.cs
- RenderOptions.cs
- TimeSpanValidator.cs
- LinqDataSourceInsertEventArgs.cs
- _DigestClient.cs
- SearchExpression.cs
- LiteralText.cs
- LocatorPart.cs
- ApplicationHost.cs
- CommandLineParser.cs
- QuaternionRotation3D.cs
- RegexFCD.cs
- ListViewInsertionMark.cs
- TracePayload.cs
- DefaultValueAttribute.cs
- MasterPage.cs
- Point.cs
- AxParameterData.cs
- XmlSecureResolver.cs
- XmlCharacterData.cs
- SetIndexBinder.cs
- LocatorGroup.cs
- ResourceLoader.cs
- NetSectionGroup.cs
- Executor.cs
- Permission.cs
- ExceptionHandlersDesigner.cs
- TextBoxBaseDesigner.cs
- RegistryDataKey.cs
- MessageDroppedTraceRecord.cs
- FramingChannels.cs
- RoleGroup.cs
- DataServicePagingProviderWrapper.cs
- CompensatableTransactionScopeActivityDesigner.cs
- DoubleAnimationClockResource.cs
- TextTrailingCharacterEllipsis.cs
- AppDomainAttributes.cs
- DesignerCalendarAdapter.cs
- BrowserCapabilitiesFactory35.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- SequentialUshortCollection.cs
- SrgsNameValueTag.cs
- XmlSerializationGeneratedCode.cs
- DBConnectionString.cs