Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- BezierSegment.cs
- BindingGroup.cs
- EncryptedPackage.cs
- Panel.cs
- MediaScriptCommandRoutedEventArgs.cs
- SchemaElementLookUpTableEnumerator.cs
- VisualStyleInformation.cs
- OrderPreservingPipeliningMergeHelper.cs
- TransformGroup.cs
- IsolatedStorageFile.cs
- CodeConstructor.cs
- Vertex.cs
- SqlTriggerAttribute.cs
- PenContexts.cs
- XmlDomTextWriter.cs
- ColumnWidthChangingEvent.cs
- Viewport3DVisual.cs
- Certificate.cs
- CompensatableTransactionScopeActivityDesigner.cs
- ResXBuildProvider.cs
- Glyph.cs
- DataGridColumnEventArgs.cs
- QuadraticEase.cs
- AnnotationResourceChangedEventArgs.cs
- ListBindingConverter.cs
- SQLGuid.cs
- EntityViewContainer.cs
- BindingSource.cs
- SecurityUtils.cs
- CommonXSendMessage.cs
- FrameworkContentElement.cs
- BinaryObjectWriter.cs
- ScrollData.cs
- PointLightBase.cs
- EnumValAlphaComparer.cs
- BindMarkupExtensionSerializer.cs
- BuildProvider.cs
- MinMaxParagraphWidth.cs
- XmlnsCache.cs
- ECDiffieHellman.cs
- Compiler.cs
- HtmlWindow.cs
- FreezableCollection.cs
- TimersDescriptionAttribute.cs
- Deflater.cs
- AppSettingsExpressionBuilder.cs
- PageRequestManager.cs
- ImageKeyConverter.cs
- AxDesigner.cs
- Msec.cs
- RegexCaptureCollection.cs
- GetFileNameResult.cs
- DataGridRelationshipRow.cs
- LogEntrySerializer.cs
- httpserverutility.cs
- RegexParser.cs
- EndpointBehaviorElement.cs
- PingOptions.cs
- UITypeEditor.cs
- ClientProxyGenerator.cs
- UnhandledExceptionEventArgs.cs
- HiddenField.cs
- DynamicMetaObjectBinder.cs
- HttpsHostedTransportConfiguration.cs
- CodeActivity.cs
- UserPreference.cs
- Win32.cs
- RenameRuleObjectDialog.cs
- DisableDpiAwarenessAttribute.cs
- DecimalAverageAggregationOperator.cs
- XmlQueryStaticData.cs
- Comparer.cs
- BaseCollection.cs
- MultiViewDesigner.cs
- PhysicalOps.cs
- ModelVisual3D.cs
- WS2007HttpBindingElement.cs
- NavigationFailedEventArgs.cs
- DataGridColumn.cs
- URLString.cs
- MetadataItemSerializer.cs
- safemediahandle.cs
- FixedTextPointer.cs
- Rectangle.cs
- FunctionUpdateCommand.cs
- ExceptionValidationRule.cs
- DataGridViewMethods.cs
- wmiprovider.cs
- XPathNavigatorReader.cs
- Constraint.cs
- StateMachineHistory.cs
- TableRow.cs
- WebPartTransformer.cs
- DateTimeFormat.cs
- ReachUIElementCollectionSerializerAsync.cs
- XPathAxisIterator.cs
- References.cs
- PolicyManager.cs
- SamlAuthenticationStatement.cs
- SmtpDigestAuthenticationModule.cs