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
- ConfigurationManagerInternalFactory.cs
- XmlComment.cs
- EncodingDataItem.cs
- ScrollContentPresenter.cs
- TrackBar.cs
- XPathNavigator.cs
- UrlAuthorizationModule.cs
- ListMarkerSourceInfo.cs
- Image.cs
- XmlSchemaComplexContentExtension.cs
- ListenerAdapter.cs
- CacheMode.cs
- HttpHostedTransportConfiguration.cs
- SchemaEntity.cs
- SHA1CryptoServiceProvider.cs
- _NativeSSPI.cs
- InstanceCompleteException.cs
- GridViewAutomationPeer.cs
- DeadCharTextComposition.cs
- StorageTypeMapping.cs
- TypeReference.cs
- XmlNodeWriter.cs
- DropShadowBitmapEffect.cs
- QuestionEventArgs.cs
- UrlMappingsModule.cs
- GridView.cs
- ProtocolsSection.cs
- DataListItemEventArgs.cs
- ThreadExceptionDialog.cs
- XmlWrappingReader.cs
- SynchronizedDispatch.cs
- SafeCryptHandles.cs
- Model3D.cs
- TypedDatasetGenerator.cs
- ClickablePoint.cs
- ServiceReflector.cs
- Peer.cs
- SubclassTypeValidatorAttribute.cs
- CatalogZone.cs
- HostingEnvironmentException.cs
- ImageIndexEditor.cs
- PageParserFilter.cs
- DataSetMappper.cs
- NameScopePropertyAttribute.cs
- Annotation.cs
- StopStoryboard.cs
- StatusBar.cs
- Line.cs
- CommaDelimitedStringAttributeCollectionConverter.cs
- EventlogProvider.cs
- QuaternionRotation3D.cs
- ThemeDictionaryExtension.cs
- TransformGroup.cs
- XmlStreamNodeWriter.cs
- OracleConnectionString.cs
- SwitchElementsCollection.cs
- ProfilePropertySettingsCollection.cs
- _BaseOverlappedAsyncResult.cs
- NamedPipeActivation.cs
- IisTraceWebEventProvider.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- AuthenticationModuleElement.cs
- RuntimeWrappedException.cs
- TextEditorDragDrop.cs
- DesignerProperties.cs
- HtmlInputHidden.cs
- safelinkcollection.cs
- CancellableEnumerable.cs
- HtmlForm.cs
- SamlSecurityToken.cs
- safemediahandle.cs
- SiteMapProvider.cs
- KnownBoxes.cs
- TemplateFactory.cs
- SafeProcessHandle.cs
- HttpCachePolicy.cs
- ISessionStateStore.cs
- DiagnosticSection.cs
- OutArgumentConverter.cs
- CacheDict.cs
- RecordConverter.cs
- Point3DCollectionConverter.cs
- SafeLibraryHandle.cs
- DynamicDocumentPaginator.cs
- HtmlLinkAdapter.cs
- BrushMappingModeValidation.cs
- SystemResourceHost.cs
- MouseEventArgs.cs
- TextureBrush.cs
- QilNode.cs
- Validator.cs
- MatrixAnimationBase.cs
- FixedElement.cs
- ExtensionDataReader.cs
- SHA384.cs
- PassportAuthenticationModule.cs
- ApplicationFileCodeDomTreeGenerator.cs
- SplitContainerDesigner.cs
- XmlSchemaSimpleContentExtension.cs
- RoutedEventValueSerializer.cs