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
- FloatUtil.cs
- DecoderFallbackWithFailureFlag.cs
- CultureInfoConverter.cs
- HTMLTagNameToTypeMapper.cs
- SmtpReplyReader.cs
- XmlNamespaceDeclarationsAttribute.cs
- SecureUICommand.cs
- ButtonChrome.cs
- ToolboxBitmapAttribute.cs
- ObjectComplexPropertyMapping.cs
- WebPartConnectionsDisconnectVerb.cs
- FamilyCollection.cs
- EpmTargetPathSegment.cs
- ElementFactory.cs
- ListDataBindEventArgs.cs
- _SSPISessionCache.cs
- SmtpMail.cs
- MultipartIdentifier.cs
- XmlDictionaryReader.cs
- NullRuntimeConfig.cs
- MaskedTextProvider.cs
- RoleManagerModule.cs
- EditingCommands.cs
- LayoutEditorPart.cs
- UInt32Converter.cs
- ClientOptions.cs
- AnimationTimeline.cs
- PrivilegeNotHeldException.cs
- GiveFeedbackEvent.cs
- DrawingAttributesDefaultValueFactory.cs
- JoinSymbol.cs
- LinqDataSourceUpdateEventArgs.cs
- XmlSchemaAnnotated.cs
- ActivatedMessageQueue.cs
- AssociationType.cs
- RequiredAttributeAttribute.cs
- DependencyObjectCodeDomSerializer.cs
- WasEndpointConfigContainer.cs
- SecurityUtils.cs
- GZipStream.cs
- BlockCollection.cs
- XdrBuilder.cs
- RelationshipFixer.cs
- IIS7WorkerRequest.cs
- sqlcontext.cs
- SafeRightsManagementQueryHandle.cs
- JournalEntryStack.cs
- SiteOfOriginContainer.cs
- ScrollProperties.cs
- XamlStyleSerializer.cs
- SortFieldComparer.cs
- ExpressionTextBox.xaml.cs
- TypeGeneratedEventArgs.cs
- PasswordTextContainer.cs
- Queue.cs
- UserPersonalizationStateInfo.cs
- Form.cs
- OpacityConverter.cs
- MailMessageEventArgs.cs
- ImageList.cs
- ObjectStateManager.cs
- ContextActivityUtils.cs
- SmiContextFactory.cs
- ToolboxItemAttribute.cs
- DefaultValueTypeConverter.cs
- TraceFilter.cs
- OdbcDataAdapter.cs
- CodeNamespace.cs
- DbConnectionInternal.cs
- PanningMessageFilter.cs
- ActiveXSite.cs
- ToolStripGrip.cs
- ConfigXmlReader.cs
- SectionUpdates.cs
- TaskCanceledException.cs
- CapiHashAlgorithm.cs
- TrackingMemoryStream.cs
- XmlSerializableReader.cs
- SHA384.cs
- TaiwanLunisolarCalendar.cs
- DataViewSetting.cs
- FunctionParameter.cs
- TreeNodeSelectionProcessor.cs
- TransactionException.cs
- InkCanvasFeedbackAdorner.cs
- ArcSegment.cs
- WebPartAddingEventArgs.cs
- cryptoapiTransform.cs
- DataGridCellEditEndingEventArgs.cs
- EventQueueState.cs
- Helpers.cs
- DataBindingExpressionBuilder.cs
- ResourceType.cs
- ListenerSessionConnection.cs
- MulticastNotSupportedException.cs
- MenuItemStyle.cs
- IteratorFilter.cs
- MD5.cs
- PrePrepareMethodAttribute.cs
- HttpStreamXmlDictionaryWriter.cs