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
- CompilationPass2TaskInternal.cs
- SecurityDescriptor.cs
- NgenServicingAttributes.cs
- HttpHeaderCollection.cs
- Int16KeyFrameCollection.cs
- IsolatedStoragePermission.cs
- WindowsFont.cs
- Transform.cs
- FragmentQuery.cs
- CapabilitiesUse.cs
- WebPartConnectionsCloseVerb.cs
- GatewayDefinition.cs
- AttachedPropertyMethodSelector.cs
- BroadcastEventHelper.cs
- Point3DValueSerializer.cs
- Point3DKeyFrameCollection.cs
- RootProfilePropertySettingsCollection.cs
- FactoryId.cs
- NonParentingControl.cs
- XPathSelfQuery.cs
- TextModifierScope.cs
- RawTextInputReport.cs
- ClassGenerator.cs
- DocumentViewer.cs
- DataServiceEntityAttribute.cs
- OptimisticConcurrencyException.cs
- StandardCommandToolStripMenuItem.cs
- ConfigurationLocationCollection.cs
- WebBrowserSiteBase.cs
- Triplet.cs
- SpecialNameAttribute.cs
- RegistryKey.cs
- WebBrowserBase.cs
- SQLByte.cs
- RtType.cs
- TextRange.cs
- RenderOptions.cs
- WrappedIUnknown.cs
- DesignerAutoFormatCollection.cs
- WebRequestModulesSection.cs
- Decoder.cs
- IndicShape.cs
- DataGridCellClipboardEventArgs.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- AdapterUtil.cs
- DataSourceDesigner.cs
- AstTree.cs
- SqlGatherProducedAliases.cs
- NaturalLanguageHyphenator.cs
- sqlstateclientmanager.cs
- BuildProviderCollection.cs
- TemplatedEditableDesignerRegion.cs
- Variant.cs
- DataMemberConverter.cs
- ApplicationCommands.cs
- SafeCryptoHandles.cs
- DrawingContextWalker.cs
- TimerEventSubscriptionCollection.cs
- Classification.cs
- KeyValueSerializer.cs
- TraceSection.cs
- codemethodreferenceexpression.cs
- CompilerWrapper.cs
- DataSysAttribute.cs
- BaseDataBoundControl.cs
- HitTestResult.cs
- XslTransformFileEditor.cs
- DropSource.cs
- XmlSchemaException.cs
- PackageDigitalSignature.cs
- DataListItem.cs
- CodeSubDirectory.cs
- Point3DConverter.cs
- GlobalizationSection.cs
- CodeDOMProvider.cs
- HttpContextServiceHost.cs
- MaterializeFromAtom.cs
- _StreamFramer.cs
- WizardPanelChangingEventArgs.cs
- AccessDataSource.cs
- JumpTask.cs
- Color.cs
- UdpReplyToBehavior.cs
- IndentedWriter.cs
- SingleConverter.cs
- ProviderUtil.cs
- EventKeyword.cs
- MarginsConverter.cs
- BulletDecorator.cs
- Control.cs
- ResolveResponseInfo.cs
- XmlSerializationWriter.cs
- SHA512Managed.cs
- DataPagerField.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- IsolatedStorageFileStream.cs
- DockPanel.cs
- DesignParameter.cs
- XamlTemplateSerializer.cs
- HtmlEmptyTagControlBuilder.cs