Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Media / DrawingServices.cs / 1 / DrawingServices.cs
//---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Description: Implements services for Drawings including walking, bounding, // and hit-testing. // // History: // // 2004/11/19 : [....] - Created it. // //--------------------------------------------------------------------------- using System.Diagnostics; using System.Windows.Media.Animation; namespace System.Windows.Media { ////// Implements services for Drawings including walking, bounding, and /// hit-testing. /// internal static class DrawingServices { ////// Determines whether or not a point exists in a Drawing /// /// Drawing to hit-test /// Point to hit-test for ////// 'true' if the point exists within the drawing, 'false' otherwise /// internal static bool HitTestPoint(Drawing drawing, Point point) { if (drawing != null) { HitTestDrawingContextWalker ctx = new HitTestWithPointDrawingContextWalker(point); drawing.WalkCurrentValue(ctx); return ctx.IsHit; } else { return false; } } ////// Hit-tests a Drawing against a PathGeometry /// /// The drawing to hit test against /// The geometry (in local coordinate space) to hit test. ////// IntersectionDetail that describes the hit result /// internal static IntersectionDetail HitTestGeometry(Drawing drawing, PathGeometry geometry) { if (drawing != null) { HitTestDrawingContextWalker ctx = new HitTestWithGeometryDrawingContextWalker(geometry); drawing.WalkCurrentValue(ctx); return ctx.IntersectionDetail; } else { return IntersectionDetail.Empty; } } ////// Converts a RenderData content representation into a DrawingGroup /// content representation. /// /// The RenderData to convert ////// A new DrawingGroup representation that is functionally equivalent to the /// passed-in RenderData. /// internal static DrawingGroup DrawingGroupFromRenderData(RenderData renderData) { // // Create & open a new DrawingGroup // DrawingGroup drawingGroup = new DrawingGroup(); DrawingContext dc = drawingGroup.Open(); // // Create a DrawingGroup from the RenderData by walking // the RenderData & having it forward it's base value's // and animations to DrawingGroup // // // The Drawing tree we're about to produce should not be an inheritance context, // since that would place all mutable Freezables in the render data into shared // state, which would in turn case them to lose their inheritance context entirely. // This is controlled by setting "CanBeInheritanceContext" to false on the // DrawingContext which will then be applied to all new objects it creates. // DrawingDrawingContext ddc = dc as DrawingDrawingContext; if (ddc != null) { ddc.CanBeInheritanceContext = false; } DrawingContextDrawingContextWalker walker = new DrawingContextDrawingContextWalker(dc); renderData.BaseValueDrawingContextWalk(walker); // // Close the DrawingContext & return the new DrawingGroup // dc.Close(); return drawingGroup; } } } // 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
- DataBoundControl.cs
- SystemFonts.cs
- PrintEvent.cs
- JavaScriptObjectDeserializer.cs
- JoinTreeNode.cs
- ClusterRegistryConfigurationProvider.cs
- ServiceOperation.cs
- ReferenceAssemblyAttribute.cs
- DbConnectionPoolOptions.cs
- IdleTimeoutMonitor.cs
- OdbcDataReader.cs
- SocketException.cs
- BehaviorService.cs
- RTLAwareMessageBox.cs
- IsolatedStorageException.cs
- EmptyImpersonationContext.cs
- RadioButtonBaseAdapter.cs
- FillRuleValidation.cs
- UpdateCommand.cs
- LogicalChannelCollection.cs
- MimeWriter.cs
- Pair.cs
- ToolTip.cs
- MissingSatelliteAssemblyException.cs
- Bits.cs
- PersistenceProviderElement.cs
- PropertyTabAttribute.cs
- DataGridViewRowPostPaintEventArgs.cs
- Helpers.cs
- BindValidationContext.cs
- RangeValidator.cs
- BaseParser.cs
- ThousandthOfEmRealPoints.cs
- DeploymentSection.cs
- RecipientInfo.cs
- MultiBinding.cs
- CommandEventArgs.cs
- OdbcConnectionHandle.cs
- MetadataItem.cs
- SByteStorage.cs
- KeyToListMap.cs
- JavaScriptObjectDeserializer.cs
- NonSerializedAttribute.cs
- ConfigurationPermission.cs
- SiteMembershipCondition.cs
- TouchesCapturedWithinProperty.cs
- XmlStringTable.cs
- TableAdapterManagerHelper.cs
- OdbcFactory.cs
- XmlSchemaAny.cs
- StringStorage.cs
- ExpressionTable.cs
- BitmapData.cs
- listitem.cs
- MonthChangedEventArgs.cs
- MinimizableAttributeTypeConverter.cs
- AuthenticationException.cs
- DeclaredTypeValidatorAttribute.cs
- Inflater.cs
- ColumnResizeUndoUnit.cs
- WebPartEditorApplyVerb.cs
- Debug.cs
- PropertyPathWorker.cs
- PartialClassGenerationTaskInternal.cs
- WindowsIPAddress.cs
- SettingsPropertyNotFoundException.cs
- IconConverter.cs
- EntityCommandExecutionException.cs
- HtmlTable.cs
- DynamicDocumentPaginator.cs
- RequestCacheEntry.cs
- EventRouteFactory.cs
- _BaseOverlappedAsyncResult.cs
- LogPolicy.cs
- StdValidatorsAndConverters.cs
- TypedOperationInfo.cs
- AdCreatedEventArgs.cs
- ContentPosition.cs
- ObjectSet.cs
- WpfGeneratedKnownProperties.cs
- CookieProtection.cs
- FileSystemEventArgs.cs
- SocketException.cs
- XmlTextEncoder.cs
- FontClient.cs
- Solver.cs
- LocatorPartList.cs
- SizeAnimationClockResource.cs
- FormsAuthenticationEventArgs.cs
- ConfigurationValidatorBase.cs
- ToolStripLocationCancelEventArgs.cs
- BuildResult.cs
- ResourceContainer.cs
- TdsParserStateObject.cs
- SrgsDocument.cs
- IPPacketInformation.cs
- WindowsListViewGroup.cs
- ServiceBehaviorElementCollection.cs
- FileAuthorizationModule.cs
- LinqExpressionNormalizer.cs