Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / MS / Internal / UIElementHelper.cs / 1 / UIElementHelper.cs
using System.Diagnostics; using System.Windows; using System.Windows.Media; using System.Windows.Media.Media3D; using System.Windows.Input; using MS.Internal.PresentationCore; namespace MS.Internal { internal static class UIElementHelper { [FriendAccessAllowed] internal static bool IsHitTestVisible(DependencyObject o) { Debug.Assert(o != null, "UIElementHelper.IsHitTestVisible called with null argument"); UIElement oAsUIElement = o as UIElement; if (oAsUIElement != null) { return oAsUIElement.IsHitTestVisible; } else { return ((UIElement3D)o).IsHitTestVisible; } } [FriendAccessAllowed] internal static bool IsVisible(DependencyObject o) { Debug.Assert(o != null, "UIElementHelper.IsVisible called with null argument"); UIElement oAsUIElement = o as UIElement; if (oAsUIElement != null) { return oAsUIElement.IsVisible; } else { return ((UIElement3D)o).IsVisible; } } [FriendAccessAllowed] internal static DependencyObject PredictFocus(DependencyObject o, FocusNavigationDirection direction) { Debug.Assert(o != null, "UIElementHelper.PredictFocus called with null argument"); UIElement oAsUIElement = o as UIElement; if (oAsUIElement != null) { return oAsUIElement.PredictFocus(direction); } else { return ((UIElement3D)o).PredictFocus(direction); } } [FriendAccessAllowed] internal static UIElement GetContainingUIElement2D(DependencyObject reference) { UIElement element = null; while (reference != null) { element = reference as UIElement; if (element != null) break; reference = VisualTreeHelper.GetParent(reference); } return element; } [FriendAccessAllowed] internal static DependencyObject GetUIParent(DependencyObject child) { DependencyObject parent = GetUIParent(child, false); return parent; } [FriendAccessAllowed] internal static DependencyObject GetUIParent(DependencyObject child, bool continuePastVisualTree) { DependencyObject parent = null; DependencyObject myParent = null; // Try to find a UIElement parent in the visual ancestry. if (child is Visual) { myParent = ((Visual)child).InternalVisualParent; } else { myParent = ((Visual3D)child).InternalVisualParent; } parent = InputElement.GetContainingUIElement(myParent) as DependencyObject; // If there was no UIElement parent in the visual ancestry, // check along the logical branch. if(parent == null && continuePastVisualTree) { UIElement childAsUIElement = child as UIElement; if (childAsUIElement != null) { parent = InputElement.GetContainingInputElement(childAsUIElement.GetUIParentCore()) as DependencyObject; } else { UIElement3D childAsUIElement3D = child as UIElement3D; if (childAsUIElement3D != null) { parent = InputElement.GetContainingInputElement(childAsUIElement3D.GetUIParentCore()) as DependencyObject; } } } return parent; } [FriendAccessAllowed] internal static bool IsUIElementOrUIElement3D(DependencyObject o) { return (o is UIElement || o is UIElement3D); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System.Diagnostics; using System.Windows; using System.Windows.Media; using System.Windows.Media.Media3D; using System.Windows.Input; using MS.Internal.PresentationCore; namespace MS.Internal { internal static class UIElementHelper { [FriendAccessAllowed] internal static bool IsHitTestVisible(DependencyObject o) { Debug.Assert(o != null, "UIElementHelper.IsHitTestVisible called with null argument"); UIElement oAsUIElement = o as UIElement; if (oAsUIElement != null) { return oAsUIElement.IsHitTestVisible; } else { return ((UIElement3D)o).IsHitTestVisible; } } [FriendAccessAllowed] internal static bool IsVisible(DependencyObject o) { Debug.Assert(o != null, "UIElementHelper.IsVisible called with null argument"); UIElement oAsUIElement = o as UIElement; if (oAsUIElement != null) { return oAsUIElement.IsVisible; } else { return ((UIElement3D)o).IsVisible; } } [FriendAccessAllowed] internal static DependencyObject PredictFocus(DependencyObject o, FocusNavigationDirection direction) { Debug.Assert(o != null, "UIElementHelper.PredictFocus called with null argument"); UIElement oAsUIElement = o as UIElement; if (oAsUIElement != null) { return oAsUIElement.PredictFocus(direction); } else { return ((UIElement3D)o).PredictFocus(direction); } } [FriendAccessAllowed] internal static UIElement GetContainingUIElement2D(DependencyObject reference) { UIElement element = null; while (reference != null) { element = reference as UIElement; if (element != null) break; reference = VisualTreeHelper.GetParent(reference); } return element; } [FriendAccessAllowed] internal static DependencyObject GetUIParent(DependencyObject child) { DependencyObject parent = GetUIParent(child, false); return parent; } [FriendAccessAllowed] internal static DependencyObject GetUIParent(DependencyObject child, bool continuePastVisualTree) { DependencyObject parent = null; DependencyObject myParent = null; // Try to find a UIElement parent in the visual ancestry. if (child is Visual) { myParent = ((Visual)child).InternalVisualParent; } else { myParent = ((Visual3D)child).InternalVisualParent; } parent = InputElement.GetContainingUIElement(myParent) as DependencyObject; // If there was no UIElement parent in the visual ancestry, // check along the logical branch. if(parent == null && continuePastVisualTree) { UIElement childAsUIElement = child as UIElement; if (childAsUIElement != null) { parent = InputElement.GetContainingInputElement(childAsUIElement.GetUIParentCore()) as DependencyObject; } else { UIElement3D childAsUIElement3D = child as UIElement3D; if (childAsUIElement3D != null) { parent = InputElement.GetContainingInputElement(childAsUIElement3D.GetUIParentCore()) as DependencyObject; } } } return parent; } [FriendAccessAllowed] internal static bool IsUIElementOrUIElement3D(DependencyObject o) { return (o is UIElement || o is UIElement3D); } } } // 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
- SamlAttributeStatement.cs
- LocalizableResourceBuilder.cs
- XmlCharacterData.cs
- CombinedTcpChannel.cs
- MailHeaderInfo.cs
- AsyncOperationManager.cs
- HttpModulesSection.cs
- CodeAttributeDeclarationCollection.cs
- Package.cs
- JsonFormatReaderGenerator.cs
- ModelItemDictionaryImpl.cs
- EventBookmark.cs
- PersonalizationState.cs
- SqlException.cs
- SymbolType.cs
- IdentityManager.cs
- VoiceObjectToken.cs
- NullableBoolConverter.cs
- ErrorStyle.cs
- BuildResult.cs
- SQLInt16.cs
- SmiSettersStream.cs
- CounterCreationDataCollection.cs
- NavigationCommands.cs
- ConditionChanges.cs
- ArgumentValidation.cs
- PerfCounters.cs
- Mutex.cs
- HtmlInputHidden.cs
- UnionCqlBlock.cs
- FontEmbeddingManager.cs
- XmlSerializationReader.cs
- CodeThrowExceptionStatement.cs
- CharEntityEncoderFallback.cs
- ISFClipboardData.cs
- WebBaseEventKeyComparer.cs
- QueryTask.cs
- PositiveTimeSpanValidatorAttribute.cs
- XmlDataProvider.cs
- LayoutEngine.cs
- HttpModuleActionCollection.cs
- Stack.cs
- StreamProxy.cs
- MSAANativeProvider.cs
- InvokeMethodDesigner.xaml.cs
- WebHeaderCollection.cs
- ObjectToken.cs
- TextReader.cs
- CodeTypeReference.cs
- ComUdtElementCollection.cs
- ManagementException.cs
- OleDbRowUpdatingEvent.cs
- InvokeProviderWrapper.cs
- SoundPlayer.cs
- OleDbPropertySetGuid.cs
- OleDbRowUpdatedEvent.cs
- ArgumentDesigner.xaml.cs
- ConversionContext.cs
- PeerTransportListenAddressConverter.cs
- ServiceModelActivity.cs
- OleDbException.cs
- TimersDescriptionAttribute.cs
- XamlSerializerUtil.cs
- SudsCommon.cs
- GeneralTransform2DTo3DTo2D.cs
- OleDbParameter.cs
- TaskbarItemInfo.cs
- ServiceMetadataContractBehavior.cs
- FontStyles.cs
- ConfigurationLoader.cs
- PerformanceCountersBase.cs
- StatusBar.cs
- UnicodeEncoding.cs
- ConstrainedDataObject.cs
- Cloud.cs
- HiddenFieldPageStatePersister.cs
- DataGridItem.cs
- OdbcConnectionPoolProviderInfo.cs
- XmlSecureResolver.cs
- DataStorage.cs
- ScriptIgnoreAttribute.cs
- VolatileResourceManager.cs
- EditorPart.cs
- ProxyAttribute.cs
- SmtpFailedRecipientException.cs
- AsmxEndpointPickerExtension.cs
- TypeValidationEventArgs.cs
- DbParameterHelper.cs
- Utils.cs
- Nodes.cs
- DataGridViewImageCell.cs
- MethodBuilder.cs
- Stacktrace.cs
- UshortList2.cs
- ServiceOperationParameter.cs
- Monitor.cs
- ColorContext.cs
- ComponentSerializationService.cs
- ListenerServiceInstallComponent.cs
- XmlSchemaAttribute.cs