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
- Single.cs
- DataTableMappingCollection.cs
- ParseHttpDate.cs
- ArglessEventHandlerProxy.cs
- OperationCanceledException.cs
- CellNormalizer.cs
- WebZoneDesigner.cs
- SerializationSectionGroup.cs
- FieldDescriptor.cs
- PeerCollaborationPermission.cs
- ArraySegment.cs
- SafeHandles.cs
- StopRoutingHandler.cs
- PageCopyCount.cs
- Environment.cs
- DataControlPagerLinkButton.cs
- ElementsClipboardData.cs
- PartManifestEntry.cs
- UnsafeNativeMethods.cs
- XmlResolver.cs
- ExceptionValidationRule.cs
- CompModSwitches.cs
- Query.cs
- RegexGroupCollection.cs
- MatrixIndependentAnimationStorage.cs
- IisTraceListener.cs
- SizeConverter.cs
- PageBreakRecord.cs
- BitmapImage.cs
- QueryStringParameter.cs
- UserMapPath.cs
- Point3DCollectionValueSerializer.cs
- HexParser.cs
- Crc32.cs
- ControlPropertyNameConverter.cs
- LinkClickEvent.cs
- CodeRemoveEventStatement.cs
- DisposableCollectionWrapper.cs
- ExpressionReplacer.cs
- ListControlStringCollectionEditor.cs
- ScopelessEnumAttribute.cs
- InplaceBitmapMetadataWriter.cs
- AspNetCompatibilityRequirementsAttribute.cs
- MessageSmuggler.cs
- RawStylusInput.cs
- CompiledRegexRunnerFactory.cs
- IndexingContentUnit.cs
- RuleSettingsCollection.cs
- TrustLevelCollection.cs
- EnvelopedPkcs7.cs
- Int16AnimationUsingKeyFrames.cs
- CriticalFinalizerObject.cs
- StringUtil.cs
- XamlPointCollectionSerializer.cs
- ResourceReferenceExpression.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- ModuleBuilderData.cs
- CompilerCollection.cs
- SwitchAttribute.cs
- DataRowCollection.cs
- XmlQualifiedNameTest.cs
- WorkflowRuntimeServiceElementCollection.cs
- FunctionUpdateCommand.cs
- MimeTypeAttribute.cs
- Cursor.cs
- InfocardChannelParameter.cs
- Stylus.cs
- ImageMapEventArgs.cs
- NavigatingCancelEventArgs.cs
- ToolStripControlHost.cs
- EncodingDataItem.cs
- ExpressionDumper.cs
- ListViewTableRow.cs
- ControlSerializer.cs
- Html32TextWriter.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- DesignerActionVerbItem.cs
- BitStream.cs
- WindowsIdentity.cs
- XLinq.cs
- DataGridViewLinkColumn.cs
- GradientStop.cs
- XamlTypeWithExplicitNamespace.cs
- OrthographicCamera.cs
- ProviderConnectionPointCollection.cs
- RawTextInputReport.cs
- AnimationStorage.cs
- DataBinder.cs
- SmiSettersStream.cs
- DrawingVisualDrawingContext.cs
- SimpleFileLog.cs
- StoreAnnotationsMap.cs
- TransactionFlowProperty.cs
- VisualStyleRenderer.cs
- XmlTextReaderImpl.cs
- DeferredSelectedIndexReference.cs
- OutOfMemoryException.cs
- LayoutInformation.cs
- XhtmlBasicSelectionListAdapter.cs
- AstNode.cs