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
- XmlSchemaDocumentation.cs
- NetNamedPipeBinding.cs
- WebServiceEnumData.cs
- BackgroundWorker.cs
- AttributeCollection.cs
- XmlSchemaSimpleTypeRestriction.cs
- ListViewTableCell.cs
- Int64AnimationUsingKeyFrames.cs
- sqlinternaltransaction.cs
- InsufficientMemoryException.cs
- TemplateControl.cs
- ApplicationContext.cs
- SchemaConstraints.cs
- DriveInfo.cs
- StaticExtensionConverter.cs
- XmlDataCollection.cs
- OleAutBinder.cs
- DocumentPaginator.cs
- NotifyIcon.cs
- SplitContainerDesigner.cs
- xml.cs
- Certificate.cs
- ChannelSinkStacks.cs
- Cursor.cs
- HScrollProperties.cs
- Italic.cs
- ArrayItemValue.cs
- Emitter.cs
- PagesSection.cs
- InputBuffer.cs
- IisTraceListener.cs
- HttpServerVarsCollection.cs
- TimeEnumHelper.cs
- TreeNodeEventArgs.cs
- MediaEntryAttribute.cs
- InlineObject.cs
- ArraySubsetEnumerator.cs
- baseaxisquery.cs
- LogEntry.cs
- HttpInputStream.cs
- Int32Rect.cs
- ChannelServices.cs
- DataPointer.cs
- XdrBuilder.cs
- xml.cs
- SiteMapNodeCollection.cs
- XamlTemplateSerializer.cs
- X509ServiceCertificateAuthenticationElement.cs
- SecurityProtocolFactory.cs
- WorkflowElementDialogWindow.xaml.cs
- ValidatorCollection.cs
- SecurityCriticalDataForSet.cs
- SmiGettersStream.cs
- DataTableReader.cs
- DbConnectionPoolGroup.cs
- DataSet.cs
- StorageComplexPropertyMapping.cs
- XMLDiffLoader.cs
- Drawing.cs
- SQLSingle.cs
- ItemCollectionEditor.cs
- UndirectedGraph.cs
- CompilerCollection.cs
- DeviceOverridableAttribute.cs
- String.cs
- SamlSubjectStatement.cs
- AutomationPatternInfo.cs
- ExpressionList.cs
- TextRangeEditLists.cs
- TextUtf8RawTextWriter.cs
- FtpWebResponse.cs
- LeafCellTreeNode.cs
- BamlLocalizableResource.cs
- SessionEndingEventArgs.cs
- StrokeRenderer.cs
- EntryPointNotFoundException.cs
- ExitEventArgs.cs
- SqlError.cs
- SourceChangedEventArgs.cs
- XsltSettings.cs
- DataGridCheckBoxColumn.cs
- Application.cs
- HtmlProps.cs
- MailAddressCollection.cs
- ContainerParaClient.cs
- Stopwatch.cs
- LogArchiveSnapshot.cs
- UnsafeNativeMethods.cs
- AssemblyAttributes.cs
- XmlAttributeProperties.cs
- XPathItem.cs
- ExpanderAutomationPeer.cs
- XmlEntity.cs
- MultilineStringConverter.cs
- DataGridViewRowsAddedEventArgs.cs
- InvalidProgramException.cs
- ArgumentOutOfRangeException.cs
- XmlCharType.cs
- QEncodedStream.cs
- ChildTable.cs