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
- JapaneseCalendar.cs
- XsltSettings.cs
- SoapSchemaMember.cs
- UnsafeNativeMethodsCLR.cs
- UDPClient.cs
- sqlstateclientmanager.cs
- HiddenFieldPageStatePersister.cs
- UInt32.cs
- HandleRef.cs
- ColumnMapVisitor.cs
- CacheRequest.cs
- BinaryMethodMessage.cs
- EncryptedKey.cs
- QueryOutputWriterV1.cs
- ReadOnlyDictionary.cs
- NativeWindow.cs
- ExternalDataExchangeService.cs
- AudioDeviceOut.cs
- StdValidatorsAndConverters.cs
- Directory.cs
- SafeFileMapViewHandle.cs
- XmlILOptimizerVisitor.cs
- XmlSchemaChoice.cs
- ForeignKeyFactory.cs
- ViewGenerator.cs
- PerformanceCounterPermission.cs
- SmtpException.cs
- XPathNodeIterator.cs
- TextBox.cs
- UITypeEditor.cs
- TdsParserHelperClasses.cs
- DeviceFiltersSection.cs
- ContextMarshalException.cs
- DrawingState.cs
- SoapCodeExporter.cs
- EncryptedKey.cs
- ExtenderProvidedPropertyAttribute.cs
- BmpBitmapDecoder.cs
- SHA384.cs
- StrokeIntersection.cs
- TransactionScopeDesigner.cs
- DataBoundControlHelper.cs
- NamedElement.cs
- MobileUITypeEditor.cs
- GlobalDataBindingHandler.cs
- WebPartRestoreVerb.cs
- BufferBuilder.cs
- DbSetClause.cs
- ValidationErrorCollection.cs
- MembershipSection.cs
- DesignerGenericWebPart.cs
- SqlUtil.cs
- WebPartDisplayModeEventArgs.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- HtmlTextArea.cs
- CharUnicodeInfo.cs
- DataAdapter.cs
- IssuanceLicense.cs
- PageAsyncTaskManager.cs
- ContentType.cs
- AsymmetricKeyExchangeDeformatter.cs
- DictionaryEntry.cs
- PriorityItem.cs
- Point3D.cs
- RootAction.cs
- DecimalAnimation.cs
- MetadataUtilsSmi.cs
- OptimizedTemplateContentHelper.cs
- StrokeRenderer.cs
- DescendantQuery.cs
- panel.cs
- DataBoundControlParameterTarget.cs
- KeyNotFoundException.cs
- CodeArrayIndexerExpression.cs
- ObjectContextServiceProvider.cs
- StrokeCollection2.cs
- DataControlFieldsEditor.cs
- ContextQuery.cs
- SharedDp.cs
- GeometryHitTestParameters.cs
- DataSourceCache.cs
- IPEndPoint.cs
- HttpResponse.cs
- TraceSection.cs
- StylusCaptureWithinProperty.cs
- Visual3DCollection.cs
- AdornerPresentationContext.cs
- WizardPanelChangingEventArgs.cs
- TreeBuilder.cs
- TextBlockAutomationPeer.cs
- SpecularMaterial.cs
- GeneratedView.cs
- FileLogRecord.cs
- Composition.cs
- TableCell.cs
- MachinePropertyVariants.cs
- MemberRelationshipService.cs
- regiisutil.cs
- DataGridViewCellStyleConverter.cs
- DataGridBoolColumn.cs