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
- SHA512Cng.cs
- CollectionChangeEventArgs.cs
- DBSqlParser.cs
- HtmlInputHidden.cs
- ReflectionTypeLoadException.cs
- arclist.cs
- XmlIgnoreAttribute.cs
- ErrorTableItemStyle.cs
- SerializationObjectManager.cs
- BindingCollection.cs
- PLINQETWProvider.cs
- NaturalLanguageHyphenator.cs
- BinHexDecoder.cs
- MsmqBindingFilter.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- ProtocolsSection.cs
- AddInPipelineAttributes.cs
- TypeForwardedToAttribute.cs
- RightsManagementInformation.cs
- ExpressionConverter.cs
- EntityDataSourceSelectingEventArgs.cs
- WindowsListViewItem.cs
- ScrollBarRenderer.cs
- ItemsControlAutomationPeer.cs
- ReadOnlyHierarchicalDataSource.cs
- FixedSOMTextRun.cs
- StaticFileHandler.cs
- Label.cs
- ImageListDesigner.cs
- LicenseManager.cs
- RequestTimeoutManager.cs
- SerializationSectionGroup.cs
- CacheAxisQuery.cs
- TimeSpanConverter.cs
- WhitespaceReader.cs
- BaseTemplateCodeDomTreeGenerator.cs
- PointUtil.cs
- parserscommon.cs
- ToolBar.cs
- ClientRuntimeConfig.cs
- Monitor.cs
- PageThemeBuildProvider.cs
- RegexWriter.cs
- XsltArgumentList.cs
- HttpResponse.cs
- parserscommon.cs
- PersonalizationEntry.cs
- UnmanagedMarshal.cs
- BackgroundFormatInfo.cs
- CompositeDataBoundControl.cs
- ProtocolViolationException.cs
- DataBoundControl.cs
- TextEndOfLine.cs
- ContainerVisual.cs
- FormatterServices.cs
- controlskin.cs
- XmlSignatureProperties.cs
- EntityPropertyMappingAttribute.cs
- SingleStorage.cs
- CallbackDebugElement.cs
- Regex.cs
- BStrWrapper.cs
- FloatMinMaxAggregationOperator.cs
- RayHitTestParameters.cs
- RowSpanVector.cs
- MostlySingletonList.cs
- PkcsMisc.cs
- CustomAssemblyResolver.cs
- MouseWheelEventArgs.cs
- FormattedText.cs
- CachedTypeface.cs
- OracleDateTime.cs
- LinearKeyFrames.cs
- PanelStyle.cs
- ManualResetEventSlim.cs
- DatePicker.cs
- HelloOperationAsyncResult.cs
- RotationValidation.cs
- ListViewAutomationPeer.cs
- StringUtil.cs
- GeometryDrawing.cs
- ResolveNameEventArgs.cs
- ButtonBase.cs
- StatusBarItem.cs
- Vector.cs
- PlaceHolder.cs
- XmlSchemaComplexContentRestriction.cs
- SafeFileMappingHandle.cs
- DataListItemCollection.cs
- RuntimeComponentFilter.cs
- XPathAncestorIterator.cs
- DataAdapter.cs
- DelimitedListTraceListener.cs
- Int32KeyFrameCollection.cs
- EnvelopedPkcs7.cs
- XPathArrayIterator.cs
- SerializableAttribute.cs
- Win32SafeHandles.cs
- CodeSubDirectory.cs
- Merger.cs