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
- ClientCredentialsElement.cs
- MouseGesture.cs
- WebPartConnectionsCancelVerb.cs
- SingleQueryOperator.cs
- PolyBezierSegment.cs
- ConnectionConsumerAttribute.cs
- SmiContext.cs
- EventSetterHandlerConverter.cs
- regiisutil.cs
- _HTTPDateParse.cs
- HttpValueCollection.cs
- ListViewTableCell.cs
- ViewStateAttachedPropertyFeature.cs
- UnsafeNativeMethods.cs
- ValuePattern.cs
- DateTimeStorage.cs
- ClickablePoint.cs
- ClientSideProviderDescription.cs
- Stream.cs
- METAHEADER.cs
- ToolBarButtonClickEvent.cs
- ManageRequest.cs
- EnumerableValidator.cs
- _IPv6Address.cs
- GradientBrush.cs
- FontStyles.cs
- WCFBuildProvider.cs
- ApplicationFileCodeDomTreeGenerator.cs
- DesignSurface.cs
- BulletedList.cs
- DispatcherHooks.cs
- DataGridViewComponentPropertyGridSite.cs
- ButtonFieldBase.cs
- TreeBuilderXamlTranslator.cs
- CacheRequest.cs
- GeneratedCodeAttribute.cs
- ImageButton.cs
- WriteTimeStream.cs
- SubqueryRules.cs
- ReferencedType.cs
- MsmqChannelFactory.cs
- VScrollProperties.cs
- PropertyNames.cs
- QilFactory.cs
- CodeTypeParameter.cs
- Win32.cs
- QuaternionConverter.cs
- BitmapDownload.cs
- ToolStripItemGlyph.cs
- ModelPropertyDescriptor.cs
- ObjectSet.cs
- NativeMethods.cs
- CryptoKeySecurity.cs
- DSGeneratorProblem.cs
- ColorConvertedBitmap.cs
- ProviderBase.cs
- XmlSchemaParticle.cs
- ExpressionWriter.cs
- SqlError.cs
- CollectionContainer.cs
- PackageController.cs
- ViewManager.cs
- DataGridTable.cs
- StorageAssociationSetMapping.cs
- _Events.cs
- BrowserCapabilitiesCodeGenerator.cs
- CodeDirectionExpression.cs
- AttachmentCollection.cs
- SoapElementAttribute.cs
- ZoomPercentageConverter.cs
- MultidimensionalArrayItemReference.cs
- PersonalizationStateQuery.cs
- FileLogRecordEnumerator.cs
- MiniCustomAttributeInfo.cs
- HttpCachePolicyWrapper.cs
- Vector3DConverter.cs
- WebRequestModulesSection.cs
- TransformValueSerializer.cs
- JsonDataContract.cs
- DesignerDataStoredProcedure.cs
- AppDomainFactory.cs
- XmlDocumentViewSchema.cs
- XmlChildEnumerator.cs
- PageAsyncTaskManager.cs
- SecUtil.cs
- SessionViewState.cs
- StringSorter.cs
- InstanceLockLostException.cs
- safex509handles.cs
- DataGridColumnHeader.cs
- SiteMapSection.cs
- IntSecurity.cs
- ImmComposition.cs
- SoapObjectReader.cs
- CompositeControl.cs
- EntityTypeEmitter.cs
- DrawingContextWalker.cs
- FormViewInsertedEventArgs.cs
- GatewayIPAddressInformationCollection.cs
- GACIdentityPermission.cs