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
- TextMetrics.cs
- FieldToken.cs
- DesignerProperties.cs
- LoginNameDesigner.cs
- ServerTooBusyException.cs
- PasswordPropertyTextAttribute.cs
- TypedReference.cs
- Rect3D.cs
- TdsParser.cs
- RoleManagerSection.cs
- ConfigurationManagerHelper.cs
- TransportBindingElement.cs
- EncoderParameters.cs
- DataRowCollection.cs
- NullableFloatMinMaxAggregationOperator.cs
- FloaterParaClient.cs
- XmlSchemaSimpleTypeUnion.cs
- Utils.cs
- XomlCompiler.cs
- SamlAssertionKeyIdentifierClause.cs
- RegexCharClass.cs
- ExpressionPrefixAttribute.cs
- ProfilePropertySettings.cs
- DocumentReference.cs
- SafeWaitHandle.cs
- DataListItem.cs
- SplineKeyFrames.cs
- PropertyMap.cs
- DesignerLoader.cs
- FormParameter.cs
- FieldAccessException.cs
- VectorAnimationUsingKeyFrames.cs
- AstNode.cs
- TextBoxBase.cs
- Sql8ExpressionRewriter.cs
- DecoderBestFitFallback.cs
- Repeater.cs
- IdentityHolder.cs
- PermissionSetEnumerator.cs
- EventLogPermissionEntryCollection.cs
- Listen.cs
- AspNetSynchronizationContext.cs
- LocalBuilder.cs
- SqlFactory.cs
- CategoryAttribute.cs
- DictionaryEntry.cs
- DataView.cs
- RowParagraph.cs
- ContentValidator.cs
- TdsParserStaticMethods.cs
- ObjectFullSpanRewriter.cs
- PropertyGridView.cs
- UnknownWrapper.cs
- FontStyles.cs
- XmlTextAttribute.cs
- CapabilitiesPattern.cs
- KeyToListMap.cs
- LayoutTable.cs
- ProgressPage.cs
- RunInstallerAttribute.cs
- RequestTimeoutManager.cs
- HtmlInputImage.cs
- XhtmlBasicControlAdapter.cs
- InkCanvasFeedbackAdorner.cs
- RegexBoyerMoore.cs
- DataSvcMapFileSerializer.cs
- DataServiceQueryOfT.cs
- SecurityPermission.cs
- CacheMemory.cs
- EntityStoreSchemaGenerator.cs
- MultiSelector.cs
- HttpDebugHandler.cs
- ApplicationFileParser.cs
- ServerValidateEventArgs.cs
- FontFamilyValueSerializer.cs
- Variable.cs
- Matrix3DStack.cs
- TypeElementCollection.cs
- HMACSHA1.cs
- AnnotationComponentChooser.cs
- AnnotationResource.cs
- ExpressionVisitor.cs
- UrlMapping.cs
- _SSPISessionCache.cs
- _Connection.cs
- MultiSelectRootGridEntry.cs
- PanelContainerDesigner.cs
- WebBrowser.cs
- RNGCryptoServiceProvider.cs
- InstallerTypeAttribute.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- WebScriptClientGenerator.cs
- RoleBoolean.cs
- RootBrowserWindowProxy.cs
- EntityObject.cs
- ResolveCriteria.cs
- TimeoutException.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- ExpressionList.cs
- ColumnWidthChangingEvent.cs