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
- PageThemeParser.cs
- SqlMultiplexer.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- TextHidden.cs
- MsmqIntegrationProcessProtocolHandler.cs
- ResourceProviderFactory.cs
- GlobalizationSection.cs
- COMException.cs
- WebPartAuthorizationEventArgs.cs
- ScaleTransform3D.cs
- CacheSection.cs
- RenderingEventArgs.cs
- ConnectionManagementElementCollection.cs
- MetadataWorkspace.cs
- PathTooLongException.cs
- CompatibleComparer.cs
- ObjectStateManager.cs
- ScaleTransform.cs
- DataFieldConverter.cs
- NGCSerializationManagerAsync.cs
- HtmlControlPersistable.cs
- BuildTopDownAttribute.cs
- PerformanceCounter.cs
- SecurityKeyIdentifierClause.cs
- NumericUpDown.cs
- SelectionWordBreaker.cs
- IListConverters.cs
- SortableBindingList.cs
- CallTemplateAction.cs
- IIS7ConfigurationLoader.cs
- BrowserCapabilitiesFactoryBase.cs
- ClientData.cs
- TreeViewHitTestInfo.cs
- AbandonedMutexException.cs
- EditorZone.cs
- remotingproxy.cs
- EndPoint.cs
- CurrentChangingEventArgs.cs
- GeometryGroup.cs
- PrinterSettings.cs
- PrivacyNoticeElement.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- ObjectDisposedException.cs
- CellNormalizer.cs
- AssemblyFilter.cs
- ServiceDescriptions.cs
- WebBodyFormatMessageProperty.cs
- WinHttpWebProxyFinder.cs
- DataGridViewColumnCollectionEditor.cs
- mansign.cs
- TemplateField.cs
- WorkflowApplicationCompletedException.cs
- PipeSecurity.cs
- CompiledIdentityConstraint.cs
- VisualStyleInformation.cs
- DataGridViewCellStyle.cs
- AlgoModule.cs
- IsolatedStorageException.cs
- ObjectTypeMapping.cs
- LayoutDump.cs
- BufferModeSettings.cs
- FormsAuthenticationConfiguration.cs
- RemoteWebConfigurationHostServer.cs
- MenuStrip.cs
- TreeBuilderXamlTranslator.cs
- CroppedBitmap.cs
- SqlUnionizer.cs
- TableRow.cs
- Predicate.cs
- SqlBulkCopy.cs
- KeyPressEvent.cs
- PageClientProxyGenerator.cs
- WebBodyFormatMessageProperty.cs
- RectValueSerializer.cs
- TextModifierScope.cs
- FormClosingEvent.cs
- Update.cs
- ParamArrayAttribute.cs
- DynamicResourceExtension.cs
- ResourceContainer.cs
- glyphs.cs
- ExponentialEase.cs
- InternalControlCollection.cs
- CommentAction.cs
- TextEditorCopyPaste.cs
- OdbcConnection.cs
- COM2IProvidePropertyBuilderHandler.cs
- PageCodeDomTreeGenerator.cs
- WebBrowserDesigner.cs
- SessionSymmetricMessageSecurityProtocolFactory.cs
- ResourceCategoryAttribute.cs
- SqlPersistenceProviderFactory.cs
- ReliableReplySessionChannel.cs
- VectorCollectionConverter.cs
- WindowsRegion.cs
- WebDescriptionAttribute.cs
- DateTimeOffsetStorage.cs
- CapiHashAlgorithm.cs
- HttpApplicationStateWrapper.cs
- EntityDataSourceViewSchema.cs