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
- UnsafeNativeMethods.cs
- RemoteWebConfigurationHostServer.cs
- GridViewRowPresenter.cs
- ExeConfigurationFileMap.cs
- Delay.cs
- DebugHandleTracker.cs
- DrawingImage.cs
- ConfigurationSettings.cs
- Content.cs
- LocationReferenceValue.cs
- TextSimpleMarkerProperties.cs
- UserMapPath.cs
- BasicCellRelation.cs
- DependencyPropertyHelper.cs
- HttpResponseHeader.cs
- TypeSystem.cs
- RadioButton.cs
- baseshape.cs
- XmlJsonReader.cs
- ManagementBaseObject.cs
- SqlFormatter.cs
- elementinformation.cs
- RemotingConfigParser.cs
- BehaviorService.cs
- EditorZoneBase.cs
- DecoderExceptionFallback.cs
- NumericUpDownAcceleration.cs
- StoryFragments.cs
- DataGridItemCollection.cs
- HelpKeywordAttribute.cs
- DocumentXmlWriter.cs
- GridViewRowCollection.cs
- IndexedWhereQueryOperator.cs
- LocalizationCodeDomSerializer.cs
- EntityParameterCollection.cs
- ComplexPropertyEntry.cs
- BamlStream.cs
- BindingElementExtensionElement.cs
- QueryComponents.cs
- WizardPanelChangingEventArgs.cs
- TimeoutValidationAttribute.cs
- ServiceDescriptionSerializer.cs
- AssemblyFilter.cs
- OperatorExpressions.cs
- ErrorFormatterPage.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- TargetControlTypeAttribute.cs
- Codec.cs
- ProxyManager.cs
- RawStylusActions.cs
- WindowsContainer.cs
- AvTrace.cs
- KeyInfo.cs
- TreeNodeStyle.cs
- StretchValidation.cs
- GradientSpreadMethodValidation.cs
- TypeValidationEventArgs.cs
- SpeechUI.cs
- ScrollViewerAutomationPeer.cs
- MulticastIPAddressInformationCollection.cs
- XmlSchemaValidationException.cs
- UserControlCodeDomTreeGenerator.cs
- _TimerThread.cs
- CorePropertiesFilter.cs
- PackageRelationshipSelector.cs
- XmlSchemaSimpleType.cs
- PropertyManager.cs
- GlobalItem.cs
- SQLRoleProvider.cs
- WriteableBitmap.cs
- TreeNodeMouseHoverEvent.cs
- UnitySerializationHolder.cs
- PageRanges.cs
- Parameter.cs
- ColumnCollectionEditor.cs
- ModelPropertyDescriptor.cs
- PlanCompiler.cs
- COM2ExtendedTypeConverter.cs
- OdbcDataAdapter.cs
- TypeForwardedFromAttribute.cs
- ToolStripRenderer.cs
- InheritedPropertyDescriptor.cs
- MarkupObject.cs
- MSAAWinEventWrap.cs
- RegexReplacement.cs
- _SslState.cs
- Polygon.cs
- InvariantComparer.cs
- UserInitiatedNavigationPermission.cs
- DefaultEventAttribute.cs
- sitestring.cs
- CodeDomDesignerLoader.cs
- PropertyEmitterBase.cs
- WhitespaceRuleLookup.cs
- TransformedBitmap.cs
- DocumentXmlWriter.cs
- PageParserFilter.cs
- EventLogPermissionAttribute.cs
- DocobjHost.cs
- WebBrowserHelper.cs