Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / MS / Internal / UIElementHelper.cs / 3 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ClaimTypeElementCollection.cs
- SqlTypesSchemaImporter.cs
- TrustManagerPromptUI.cs
- SystemIPv6InterfaceProperties.cs
- HttpHandlerAction.cs
- SqlXmlStorage.cs
- Header.cs
- Int32KeyFrameCollection.cs
- HiddenField.cs
- DataSourceHelper.cs
- BufferedResponseStream.cs
- DataGridViewTextBoxCell.cs
- Int16Storage.cs
- PropertyIdentifier.cs
- XmlSchemaObject.cs
- FileCodeGroup.cs
- ManipulationStartingEventArgs.cs
- Utils.cs
- GridViewRowCollection.cs
- PassportPrincipal.cs
- PropertyRef.cs
- TextRangeEditTables.cs
- UnmanagedMemoryAccessor.cs
- WebEventTraceProvider.cs
- Rect.cs
- RewritingValidator.cs
- sqlser.cs
- DoubleUtil.cs
- SqlDataSourceEnumerator.cs
- DeviceSpecificChoiceCollection.cs
- ResourceContainerWrapper.cs
- StylusTouchDevice.cs
- EmissiveMaterial.cs
- FixedPageStructure.cs
- AdapterUtil.cs
- SessionSwitchEventArgs.cs
- EventProviderWriter.cs
- IgnoreFlushAndCloseStream.cs
- InfoCardTrace.cs
- DataGridRowHeaderAutomationPeer.cs
- ContextMenuStripGroup.cs
- GeneralTransform3DCollection.cs
- FrameSecurityDescriptor.cs
- PolygonHotSpot.cs
- AnnotationComponentChooser.cs
- DbBuffer.cs
- HtmlInputFile.cs
- TileModeValidation.cs
- GuidelineSet.cs
- SafeIUnknown.cs
- ThemeDictionaryExtension.cs
- LinqExpressionNormalizer.cs
- ManagementEventArgs.cs
- unitconverter.cs
- BrowserInteropHelper.cs
- ViewCellRelation.cs
- ConsoleEntryPoint.cs
- StylusPointProperties.cs
- ZoneIdentityPermission.cs
- HtmlPhoneCallAdapter.cs
- GridPatternIdentifiers.cs
- EntityProviderServices.cs
- CustomErrorCollection.cs
- mediapermission.cs
- DbConnectionOptions.cs
- GraphicsPath.cs
- DynamicPhysicalDiscoSearcher.cs
- TreeNodeStyleCollectionEditor.cs
- HttpResponseInternalBase.cs
- XmlWriterTraceListener.cs
- DecoratedNameAttribute.cs
- SqlXmlStorage.cs
- Bidi.cs
- ColorInterpolationModeValidation.cs
- Update.cs
- Sql8ConformanceChecker.cs
- ProfileSettings.cs
- TabControlCancelEvent.cs
- CodeIdentifier.cs
- QualifierSet.cs
- HMACSHA1.cs
- NativeObjectSecurity.cs
- PenLineCapValidation.cs
- ObjectDataSourceDesigner.cs
- CommentAction.cs
- CustomTypeDescriptor.cs
- SamlAudienceRestrictionCondition.cs
- XmlILAnnotation.cs
- Border.cs
- AutoGeneratedFieldProperties.cs
- FlowDocumentPaginator.cs
- FixedSOMPage.cs
- PropertyValueUIItem.cs
- IsolatedStorageFile.cs
- Base64Encoder.cs
- EntityTypeEmitter.cs
- StorageSetMapping.cs
- ContentOperations.cs
- DocumentGridPage.cs
- sqlinternaltransaction.cs