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
- GridViewRowPresenter.cs
- Accessible.cs
- UrlAuthFailedErrorFormatter.cs
- VerificationAttribute.cs
- ReadOnlyTernaryTree.cs
- BindingMemberInfo.cs
- HostUtils.cs
- WebPartDeleteVerb.cs
- ImageDrawing.cs
- SqlServices.cs
- TrimSurroundingWhitespaceAttribute.cs
- ProxyManager.cs
- NameValueCollection.cs
- DbParameterCollectionHelper.cs
- oledbconnectionstring.cs
- BaseDataList.cs
- HashStream.cs
- WindowsSlider.cs
- IItemProperties.cs
- X509CertificateTrustedIssuerElement.cs
- FormViewRow.cs
- SelectionProcessor.cs
- XmlCharCheckingReader.cs
- LinqDataSourceHelper.cs
- NonParentingControl.cs
- Timeline.cs
- Pair.cs
- BinaryConverter.cs
- MsmqBindingMonitor.cs
- TreeNodeStyleCollection.cs
- ReceiveCompletedEventArgs.cs
- PersistenceMetadataNamespace.cs
- ExclusiveHandle.cs
- DataGridViewTopLeftHeaderCell.cs
- TypeListConverter.cs
- GeometryCombineModeValidation.cs
- ChannelSinkStacks.cs
- CreateUserErrorEventArgs.cs
- TraceEventCache.cs
- MailAddressCollection.cs
- XmlSchemaInfo.cs
- QilReference.cs
- CodeTypeConstructor.cs
- PropertyGridCommands.cs
- CheckedListBox.cs
- CdpEqualityComparer.cs
- MergeEnumerator.cs
- HttpModuleActionCollection.cs
- LinkDescriptor.cs
- ThicknessAnimation.cs
- PageContent.cs
- UriTemplateClientFormatter.cs
- FragmentQueryKB.cs
- PasswordBoxAutomationPeer.cs
- ping.cs
- ToolStripDropDownItem.cs
- FormClosedEvent.cs
- AnimationClockResource.cs
- Stroke2.cs
- XamlPathDataSerializer.cs
- TogglePattern.cs
- ConsumerConnectionPoint.cs
- PageThemeCodeDomTreeGenerator.cs
- WebPartAuthorizationEventArgs.cs
- SessionEndingEventArgs.cs
- FixedSOMTable.cs
- GradientStop.cs
- ValidationSummary.cs
- SafePointer.cs
- ServiceOperationInvoker.cs
- VerificationException.cs
- WindowsListViewGroup.cs
- ForwardPositionQuery.cs
- SQLChars.cs
- LogReservationCollection.cs
- IsolatedStorageFile.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- Rotation3DAnimationBase.cs
- MatrixConverter.cs
- DependencyPropertyValueSerializer.cs
- LicenseContext.cs
- ComponentEvent.cs
- OciHandle.cs
- TargetControlTypeCache.cs
- XPathSelfQuery.cs
- ChannelBinding.cs
- QueryAccessibilityHelpEvent.cs
- Calendar.cs
- DataServiceHostFactory.cs
- PackagePartCollection.cs
- DelegatingConfigHost.cs
- NumberSubstitution.cs
- EventLogEntry.cs
- ArgumentException.cs
- TextDecoration.cs
- WmlPanelAdapter.cs
- EventMap.cs
- FontCacheUtil.cs
- EventManager.cs
- Clipboard.cs