Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- RelatedPropertyManager.cs
- DataBindEngine.cs
- OdbcConnectionPoolProviderInfo.cs
- MouseEvent.cs
- TextElementCollectionHelper.cs
- TextEditorDragDrop.cs
- SortFieldComparer.cs
- Columns.cs
- ThreadStaticAttribute.cs
- HttpHandlerActionCollection.cs
- ParameterCollection.cs
- ClientScriptManager.cs
- Bits.cs
- StorageFunctionMapping.cs
- NullableConverter.cs
- ModifyActivitiesPropertyDescriptor.cs
- KeyGestureConverter.cs
- XappLauncher.cs
- UIntPtr.cs
- EditingMode.cs
- ReferencedType.cs
- NumericUpDownAcceleration.cs
- DesignerSerializationOptionsAttribute.cs
- wmiprovider.cs
- Memoizer.cs
- ToolStripItem.cs
- CancelEventArgs.cs
- WindowsSlider.cs
- HighlightComponent.cs
- RecipientIdentity.cs
- DefaultValueAttribute.cs
- Viewport3DAutomationPeer.cs
- QueryStringParameter.cs
- TemplateColumn.cs
- PhoneCall.cs
- _SecureChannel.cs
- DodSequenceMerge.cs
- DynamicRenderer.cs
- DataGridViewCellValueEventArgs.cs
- BuildProvider.cs
- CompilationUtil.cs
- AttachmentCollection.cs
- ViewDesigner.cs
- ScriptingWebServicesSectionGroup.cs
- ExpressionConverter.cs
- SqlDataSourceFilteringEventArgs.cs
- OdbcConnectionString.cs
- StrokeNodeData.cs
- UrlRoutingHandler.cs
- OptionalMessageQuery.cs
- FontDriver.cs
- xdrvalidator.cs
- CommandLibraryHelper.cs
- TableHeaderCell.cs
- HtmlDocument.cs
- CrossSiteScriptingValidation.cs
- String.cs
- HtmlHistory.cs
- XmlDigitalSignatureProcessor.cs
- FileLoadException.cs
- IntranetCredentialPolicy.cs
- XPathPatternBuilder.cs
- SelectingProviderEventArgs.cs
- IDispatchConstantAttribute.cs
- HtmlInputSubmit.cs
- XmlCodeExporter.cs
- FormViewCommandEventArgs.cs
- Assembly.cs
- FeatureManager.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- BufferedGraphicsContext.cs
- KnownColorTable.cs
- WindowsSolidBrush.cs
- BehaviorEditorPart.cs
- XmlSchemaNotation.cs
- ContextQuery.cs
- TextAutomationPeer.cs
- OracleRowUpdatedEventArgs.cs
- XmlnsCache.cs
- AspProxy.cs
- DrawingImage.cs
- XmlEncodedRawTextWriter.cs
- ToolStripGrip.cs
- DateTimeConverter.cs
- InkCanvasFeedbackAdorner.cs
- XmlDataImplementation.cs
- AQNBuilder.cs
- Wizard.cs
- TabItem.cs
- GenericsInstances.cs
- SingleSelectRootGridEntry.cs
- XmlElementAttributes.cs
- PropertyStore.cs
- dataprotectionpermission.cs
- BooleanToSelectiveScrollingOrientationConverter.cs
- NavigationExpr.cs
- ActivityContext.cs
- TabItemWrapperAutomationPeer.cs
- EntityDataSourceDesigner.cs
- MouseActionValueSerializer.cs