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
- DbConnectionInternal.cs
- CompositeScriptReference.cs
- SrgsElement.cs
- MissingSatelliteAssemblyException.cs
- UnsafeNativeMethods.cs
- ListenerSessionConnectionReader.cs
- XpsImageSerializationService.cs
- LowerCaseStringConverter.cs
- wmiprovider.cs
- PrintPreviewControl.cs
- InternalConfigSettingsFactory.cs
- ObjectListShowCommandsEventArgs.cs
- SchemaManager.cs
- AVElementHelper.cs
- WindowsStreamSecurityBindingElement.cs
- WebPartsSection.cs
- URLString.cs
- FrameworkContentElement.cs
- CodeTryCatchFinallyStatement.cs
- WinFormsComponentEditor.cs
- CodeNamespaceImport.cs
- Matrix.cs
- XpsSerializationException.cs
- AppDomainGrammarProxy.cs
- TextSelectionProcessor.cs
- StrokeCollectionConverter.cs
- XmlChildNodes.cs
- ContentPresenter.cs
- RightsManagementInformation.cs
- XmlSchemaType.cs
- NonClientArea.cs
- PKCS1MaskGenerationMethod.cs
- ContainerFilterService.cs
- BindingSourceDesigner.cs
- DetectEofStream.cs
- TranslateTransform.cs
- QilReference.cs
- DataGrid.cs
- AppDomainManager.cs
- MemberDescriptor.cs
- GPPOINT.cs
- X509CertificateTrustedIssuerElementCollection.cs
- SqlDataReader.cs
- TransformerTypeCollection.cs
- ClientApiGenerator.cs
- GridView.cs
- CopyNamespacesAction.cs
- WithStatement.cs
- ProtocolElementCollection.cs
- WebPartConnectionsConfigureVerb.cs
- ZoneButton.cs
- GcHandle.cs
- _DomainName.cs
- IndexedWhereQueryOperator.cs
- CodeMethodReturnStatement.cs
- FileInfo.cs
- TrustLevel.cs
- CheckoutException.cs
- GridItem.cs
- TypeToken.cs
- ReadOnlyNameValueCollection.cs
- ConfigurationManagerHelperFactory.cs
- TableChangeProcessor.cs
- ServiceReference.cs
- CodeDOMUtility.cs
- WindowsComboBox.cs
- OdbcDataAdapter.cs
- NavigationWindowAutomationPeer.cs
- GeneralTransformGroup.cs
- CharKeyFrameCollection.cs
- sqlstateclientmanager.cs
- EntityParameterCollection.cs
- MinimizableAttributeTypeConverter.cs
- LabelAutomationPeer.cs
- Size3D.cs
- Registry.cs
- EncodingTable.cs
- DockPanel.cs
- NativeMethods.cs
- _DisconnectOverlappedAsyncResult.cs
- ListMarkerSourceInfo.cs
- PublishLicense.cs
- C14NUtil.cs
- XmlUnspecifiedAttribute.cs
- XmlQueryRuntime.cs
- GridViewUpdatedEventArgs.cs
- RelatedImageListAttribute.cs
- EditCommandColumn.cs
- AsyncOperationContext.cs
- SubclassTypeValidatorAttribute.cs
- UdpSocket.cs
- TypeValidationEventArgs.cs
- Context.cs
- DocumentsTrace.cs
- Authorization.cs
- ApplicationHost.cs
- FloatUtil.cs
- XamlTypeMapper.cs
- ProxyManager.cs
- HighContrastHelper.cs