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
- WindowsAuthenticationModule.cs
- SystemEvents.cs
- ConditionalAttribute.cs
- SecurityManager.cs
- TableLayoutSettingsTypeConverter.cs
- TypeGenericEnumerableViewSchema.cs
- TextTreeUndoUnit.cs
- DocumentViewerHelper.cs
- DataFormat.cs
- ObjectRef.cs
- SR.cs
- IpcClientManager.cs
- Win32NamedPipes.cs
- ConfigurationLocationCollection.cs
- InvokeBinder.cs
- UInt64Converter.cs
- MenuAutomationPeer.cs
- RootProfilePropertySettingsCollection.cs
- DefaultMemberAttribute.cs
- ObjectListCommandsPage.cs
- LogLogRecordEnumerator.cs
- mediaeventargs.cs
- CompositionTarget.cs
- FilterUserControlBase.cs
- SystemResourceHost.cs
- FormViewDeleteEventArgs.cs
- BrushConverter.cs
- GeometryGroup.cs
- BitmapImage.cs
- MetadataItemCollectionFactory.cs
- FileDetails.cs
- DataGridViewCheckBoxColumn.cs
- StyleXamlParser.cs
- XmlResolver.cs
- TableSectionStyle.cs
- ComponentDispatcher.cs
- ThreadPoolTaskScheduler.cs
- DataSetViewSchema.cs
- SerializationSectionGroup.cs
- ZipQueryOperator.cs
- ExpressionBindings.cs
- PermissionToken.cs
- UpdateExpressionVisitor.cs
- Quaternion.cs
- HighContrastHelper.cs
- OrderByQueryOptionExpression.cs
- Validator.cs
- TraceUtility.cs
- ColumnClickEvent.cs
- HttpBrowserCapabilitiesBase.cs
- Errors.cs
- StringFunctions.cs
- ISAPIApplicationHost.cs
- TargetControlTypeCache.cs
- SHA384Managed.cs
- CachedRequestParams.cs
- AdPostCacheSubstitution.cs
- ScrollViewer.cs
- PeerNearMe.cs
- BevelBitmapEffect.cs
- EntityContainerRelationshipSet.cs
- ClientCredentialsElement.cs
- InvalidCardException.cs
- CodeDOMProvider.cs
- ItemContainerGenerator.cs
- Int32Converter.cs
- CachedRequestParams.cs
- WindowsNonControl.cs
- DataGridViewRowsRemovedEventArgs.cs
- CollectionViewGroupInternal.cs
- DataServiceRequest.cs
- SHA1Managed.cs
- FreeIndexList.cs
- ToolStripDropDown.cs
- MD5HashHelper.cs
- StrongNameMembershipCondition.cs
- AccessText.cs
- ColorAnimationBase.cs
- AncestorChangedEventArgs.cs
- SolidBrush.cs
- DataGridCellsPanel.cs
- SingleKeyFrameCollection.cs
- WebPartsPersonalization.cs
- OdbcTransaction.cs
- COM2FontConverter.cs
- ActivityLocationReferenceEnvironment.cs
- TextBox.cs
- UnknownBitmapEncoder.cs
- TextRange.cs
- HttpProfileBase.cs
- RadialGradientBrush.cs
- IHttpResponseInternal.cs
- RevocationPoint.cs
- TextServicesContext.cs
- ResourceDisplayNameAttribute.cs
- XmlSchemas.cs
- InvalidOperationException.cs
- SystemWebCachingSectionGroup.cs
- Control.cs
- GridItemProviderWrapper.cs