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
- SystemResources.cs
- HierarchicalDataBoundControl.cs
- PropertyPathConverter.cs
- InstanceData.cs
- RowToParametersTransformer.cs
- ExtendedPropertyDescriptor.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- PolicyValidator.cs
- PointConverter.cs
- PropertyTabChangedEvent.cs
- SessionEndedEventArgs.cs
- PagesChangedEventArgs.cs
- WindowsTokenRoleProvider.cs
- CompoundFileDeflateTransform.cs
- CodeObject.cs
- WebPartActionVerb.cs
- ControlPager.cs
- BindingCompleteEventArgs.cs
- RootBrowserWindowProxy.cs
- DataPagerFieldCollection.cs
- StrongTypingException.cs
- DeleteCardRequest.cs
- CacheMode.cs
- ContractMapping.cs
- exports.cs
- UpdatePanelTriggerCollection.cs
- TemplatePropertyEntry.cs
- ClientConfigurationHost.cs
- SystemKeyConverter.cs
- RunWorkerCompletedEventArgs.cs
- DesignTimeVisibleAttribute.cs
- cryptoapiTransform.cs
- XPathNavigatorReader.cs
- cookieexception.cs
- ToolStripMenuItemDesigner.cs
- ISO2022Encoding.cs
- AsyncCallback.cs
- ProgressChangedEventArgs.cs
- RoleService.cs
- ZipIOLocalFileBlock.cs
- Internal.cs
- Animatable.cs
- SqlProviderServices.cs
- UniformGrid.cs
- AuthorizationRule.cs
- _Win32.cs
- IEnumerable.cs
- IdentifierService.cs
- DataGridTable.cs
- ToolbarAUtomationPeer.cs
- CertificateManager.cs
- SessionStateUtil.cs
- ConfigurationManagerInternal.cs
- AccessDataSourceDesigner.cs
- SetterBase.cs
- FixedSOMElement.cs
- DataGridViewLinkCell.cs
- StylusSystemGestureEventArgs.cs
- Exceptions.cs
- StringDictionaryEditor.cs
- TagNameToTypeMapper.cs
- DrawingContextWalker.cs
- XmlSerializationGeneratedCode.cs
- _ContextAwareResult.cs
- TextBlock.cs
- BamlLocalizer.cs
- StrokeNodeData.cs
- QueryCursorEventArgs.cs
- ByteAnimationUsingKeyFrames.cs
- WebPartZoneBase.cs
- ImageListStreamer.cs
- ProvidePropertyAttribute.cs
- ColorTranslator.cs
- UseManagedPresentationElement.cs
- StreamInfo.cs
- VScrollProperties.cs
- TableCellAutomationPeer.cs
- XmlElementAttributes.cs
- RectangleF.cs
- RowUpdatingEventArgs.cs
- TdsEnums.cs
- CommandBindingCollection.cs
- WindowInteractionStateTracker.cs
- Script.cs
- BindingBase.cs
- InlineUIContainer.cs
- Stream.cs
- XmlQueryCardinality.cs
- ErrorStyle.cs
- SelectionPatternIdentifiers.cs
- HttpContext.cs
- MapPathBasedVirtualPathProvider.cs
- HwndMouseInputProvider.cs
- MatrixValueSerializer.cs
- RoutedEventValueSerializer.cs
- DllNotFoundException.cs
- PageVisual.cs
- ReferenceEqualityComparer.cs
- SmtpMail.cs
- UnaryOperationBinder.cs