Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- UnicastIPAddressInformationCollection.cs
- EventHandlerList.cs
- RPIdentityRequirement.cs
- SyntaxCheck.cs
- TextSelectionHelper.cs
- SystemThemeKey.cs
- TransformGroup.cs
- WebPartDisplayModeCollection.cs
- MdiWindowListStrip.cs
- FormatException.cs
- DBDataPermission.cs
- DynamicEndpoint.cs
- Button.cs
- DetailsViewUpdatedEventArgs.cs
- ReaderWriterLock.cs
- SerializationEventsCache.cs
- XamlSerializerUtil.cs
- FindCompletedEventArgs.cs
- WhitespaceReader.cs
- TemplateBindingExtensionConverter.cs
- Stack.cs
- EventHandlerList.cs
- DesignerRegionCollection.cs
- GridViewCommandEventArgs.cs
- OptimisticConcurrencyException.cs
- MyContact.cs
- SerializationInfo.cs
- XmlQualifiedNameTest.cs
- OperationAbortedException.cs
- LambdaCompiler.ControlFlow.cs
- ChtmlFormAdapter.cs
- FtpWebRequest.cs
- SafeFileMappingHandle.cs
- MetadataArtifactLoader.cs
- QueryOutputWriterV1.cs
- SimpleType.cs
- CodeNamespaceCollection.cs
- GridViewRow.cs
- WmlPanelAdapter.cs
- HtmlTableCell.cs
- serverconfig.cs
- JavaScriptObjectDeserializer.cs
- FormsAuthenticationEventArgs.cs
- Compiler.cs
- GlyphElement.cs
- SHA1CryptoServiceProvider.cs
- ConfigurationSettings.cs
- JoinGraph.cs
- ValidatorUtils.cs
- CustomErrorsSectionWrapper.cs
- ProfilePropertySettings.cs
- IResourceProvider.cs
- ComplexObject.cs
- WebMessageFormatHelper.cs
- MsmqOutputChannel.cs
- ControlPaint.cs
- HttpValueCollection.cs
- ContextMenuAutomationPeer.cs
- ReaderContextStackData.cs
- ButtonBaseAdapter.cs
- ConcurrentStack.cs
- FrameworkElement.cs
- fixedPageContentExtractor.cs
- WeakEventTable.cs
- LayoutEditorPart.cs
- _HeaderInfo.cs
- RuleSettings.cs
- KeyManager.cs
- StatusBar.cs
- InternalRelationshipCollection.cs
- EditingCoordinator.cs
- XmlUtil.cs
- ParserHooks.cs
- RenderDataDrawingContext.cs
- TypeUnloadedException.cs
- NetworkAddressChange.cs
- ProgressBar.cs
- FixedElement.cs
- BlurBitmapEffect.cs
- SessionParameter.cs
- ComponentDispatcherThread.cs
- Operand.cs
- UserNamePasswordServiceCredential.cs
- CanonicalXml.cs
- ReferentialConstraintRoleElement.cs
- TextCollapsingProperties.cs
- SafeNativeMethods.cs
- XamlStream.cs
- OrderPreservingSpoolingTask.cs
- IPPacketInformation.cs
- LinkAreaEditor.cs
- AgileSafeNativeMemoryHandle.cs
- SQLByte.cs
- dsa.cs
- DataTable.cs
- MemberAccessException.cs
- XmlDictionaryReader.cs
- DomNameTable.cs
- SmiConnection.cs
- HwndPanningFeedback.cs