Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / System / Windows / Media / PathFigure.cs / 1 / PathFigure.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2001 // // File: PathFigure.cs //----------------------------------------------------------------------------- using System; using MS.Internal; using MS.Internal.PresentationCore; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Diagnostics; using System.Reflection; using System.Collections; using System.Collections.Generic; using System.Text; using System.Globalization; using System.Windows.Media; using System.Windows.Media.Composition; using System.Windows; using System.Text.RegularExpressions; using System.Windows.Media.Animation; using System.Windows.Markup; using System.Security; using System.Security.Permissions; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; namespace System.Windows.Media { #region PathFigure ////// PathFigure /// [ContentProperty("Segments")] [Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)] public sealed partial class PathFigure : Animatable, IFormattable { #region Constructors ////// /// public PathFigure() { } ////// Constructor /// /// The path's startpoint /// A collection of segments /// Indicates whether the figure is closed public PathFigure(Point start, IEnumerablesegments, bool closed) { StartPoint = start; PathSegmentCollection mySegments = Segments; if (segments != null) { foreach (PathSegment item in segments) { mySegments.Add(item); } } else { throw new ArgumentNullException("segments"); } IsClosed = closed; } #endregion Constructors #region GetFlattenedPathFigure /// /// Approximate this figure with a polygonal PathFigure /// /// The approximation error tolerance /// The way the error tolerance will be interpreted - relative or absolute ///Returns the polygonal approximation as a PathFigure. public PathFigure GetFlattenedPathFigure(double tolerance, ToleranceType type) { PathGeometry geometry = new PathGeometry(); geometry.Figures.Add(this); PathGeometry flattenedGeometry = geometry.GetFlattenedPathGeometry(tolerance, type); int count = flattenedGeometry.Figures.Count; if (count == 0) { return new PathFigure(); } else if (count == 1) { return flattenedGeometry.Figures[0]; } else { throw new InvalidOperationException(SR.Get(SRID.PathGeometry_InternalReadBackError)); } } ////// Approximate this figure with a polygonal PathFigure /// ///Returns the polygonal approximation as a PathFigure. public PathFigure GetFlattenedPathFigure() { return GetFlattenedPathFigure(Geometry.StandardFlatteningTolerance, ToleranceType.Absolute); } #endregion ////// Returns true if this geometry may have curved segments /// public bool MayHaveCurves() { PathSegmentCollection segments = Segments; if (segments == null) { return false; } int count = segments.Count; for (int i = 0; i < count; i++) { if (segments.Internal_GetItem(i).IsCurved()) { return true; } } return false; } #region GetTransformedCopy internal PathFigure GetTransformedCopy(Matrix matrix) { PathSegmentCollection segments = Segments; PathFigure result = new PathFigure(); Point current = StartPoint; result.StartPoint = current * matrix; if (segments != null) { int count = segments.Count; for (int i=0; i/// Creates a string representation of this object based on the current culture. /// /// /// A string representation of this object. /// public override string ToString() { ReadPreamble(); // Delegate to the internal method which implements all ToString calls. return ConvertToString(null /* format string */, null /* format provider */); } ////// Creates a string representation of this object based on the IFormatProvider /// passed in. If the provider is null, the CurrentCulture is used. /// ////// A string representation of this object. /// public string ToString(IFormatProvider provider) { ReadPreamble(); // Delegate to the internal method which implements all ToString calls. return ConvertToString(null /* format string */, provider); } ////// Creates a string representation of this object based on the format string /// and IFormatProvider passed in. /// If the provider is null, the CurrentCulture is used. /// See the documentation for IFormattable for more information. /// ////// A string representation of this object. /// string IFormattable.ToString(string format, IFormatProvider provider) { ReadPreamble(); // Delegate to the internal method which implements all ToString calls. return ConvertToString(format, provider); } ////// Can serialze "this" to a string. /// This returns true iff IsFilled == c_isFilled and the segment /// collection can be stroked. /// internal bool CanSerializeToString() { PathSegmentCollection segments = Segments; return (IsFilled == c_IsFilled) && ((segments == null) || segments.CanSerializeToString()); } ////// Creates a string representation of this object based on the format string /// and IFormatProvider passed in. /// If the provider is null, the CurrentCulture is used. /// See the documentation for IFormattable for more information. /// ////// A string representation of this object. /// internal string ConvertToString(string format, IFormatProvider provider) { PathSegmentCollection segments = Segments; return "M" + ((IFormattable)StartPoint).ToString(format, provider) + (segments != null ? segments.ConvertToString(format, provider) : "") + (IsClosed ? "z" : ""); } ////// SerializeData - Serialize the contents of this Figure to the provided context. /// internal void SerializeData(StreamGeometryContext ctx) { ctx.BeginFigure(StartPoint, IsFilled, IsClosed); PathSegmentCollection segments = Segments; int pathSegmentCount = segments == null ? 0 : segments.Count; for (int i = 0; i < pathSegmentCount; i++) { segments.Internal_GetItem(i).SerializeData(ctx); } } } #endregion } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2001 // // File: PathFigure.cs //----------------------------------------------------------------------------- using System; using MS.Internal; using MS.Internal.PresentationCore; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Diagnostics; using System.Reflection; using System.Collections; using System.Collections.Generic; using System.Text; using System.Globalization; using System.Windows.Media; using System.Windows.Media.Composition; using System.Windows; using System.Text.RegularExpressions; using System.Windows.Media.Animation; using System.Windows.Markup; using System.Security; using System.Security.Permissions; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; namespace System.Windows.Media { #region PathFigure ////// PathFigure /// [ContentProperty("Segments")] [Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)] public sealed partial class PathFigure : Animatable, IFormattable { #region Constructors ////// /// public PathFigure() { } ////// Constructor /// /// The path's startpoint /// A collection of segments /// Indicates whether the figure is closed public PathFigure(Point start, IEnumerablesegments, bool closed) { StartPoint = start; PathSegmentCollection mySegments = Segments; if (segments != null) { foreach (PathSegment item in segments) { mySegments.Add(item); } } else { throw new ArgumentNullException("segments"); } IsClosed = closed; } #endregion Constructors #region GetFlattenedPathFigure /// /// Approximate this figure with a polygonal PathFigure /// /// The approximation error tolerance /// The way the error tolerance will be interpreted - relative or absolute ///Returns the polygonal approximation as a PathFigure. public PathFigure GetFlattenedPathFigure(double tolerance, ToleranceType type) { PathGeometry geometry = new PathGeometry(); geometry.Figures.Add(this); PathGeometry flattenedGeometry = geometry.GetFlattenedPathGeometry(tolerance, type); int count = flattenedGeometry.Figures.Count; if (count == 0) { return new PathFigure(); } else if (count == 1) { return flattenedGeometry.Figures[0]; } else { throw new InvalidOperationException(SR.Get(SRID.PathGeometry_InternalReadBackError)); } } ////// Approximate this figure with a polygonal PathFigure /// ///Returns the polygonal approximation as a PathFigure. public PathFigure GetFlattenedPathFigure() { return GetFlattenedPathFigure(Geometry.StandardFlatteningTolerance, ToleranceType.Absolute); } #endregion ////// Returns true if this geometry may have curved segments /// public bool MayHaveCurves() { PathSegmentCollection segments = Segments; if (segments == null) { return false; } int count = segments.Count; for (int i = 0; i < count; i++) { if (segments.Internal_GetItem(i).IsCurved()) { return true; } } return false; } #region GetTransformedCopy internal PathFigure GetTransformedCopy(Matrix matrix) { PathSegmentCollection segments = Segments; PathFigure result = new PathFigure(); Point current = StartPoint; result.StartPoint = current * matrix; if (segments != null) { int count = segments.Count; for (int i=0; i/// Creates a string representation of this object based on the current culture. /// /// /// A string representation of this object. /// public override string ToString() { ReadPreamble(); // Delegate to the internal method which implements all ToString calls. return ConvertToString(null /* format string */, null /* format provider */); } ////// Creates a string representation of this object based on the IFormatProvider /// passed in. If the provider is null, the CurrentCulture is used. /// ////// A string representation of this object. /// public string ToString(IFormatProvider provider) { ReadPreamble(); // Delegate to the internal method which implements all ToString calls. return ConvertToString(null /* format string */, provider); } ////// Creates a string representation of this object based on the format string /// and IFormatProvider passed in. /// If the provider is null, the CurrentCulture is used. /// See the documentation for IFormattable for more information. /// ////// A string representation of this object. /// string IFormattable.ToString(string format, IFormatProvider provider) { ReadPreamble(); // Delegate to the internal method which implements all ToString calls. return ConvertToString(format, provider); } ////// Can serialze "this" to a string. /// This returns true iff IsFilled == c_isFilled and the segment /// collection can be stroked. /// internal bool CanSerializeToString() { PathSegmentCollection segments = Segments; return (IsFilled == c_IsFilled) && ((segments == null) || segments.CanSerializeToString()); } ////// Creates a string representation of this object based on the format string /// and IFormatProvider passed in. /// If the provider is null, the CurrentCulture is used. /// See the documentation for IFormattable for more information. /// ////// A string representation of this object. /// internal string ConvertToString(string format, IFormatProvider provider) { PathSegmentCollection segments = Segments; return "M" + ((IFormattable)StartPoint).ToString(format, provider) + (segments != null ? segments.ConvertToString(format, provider) : "") + (IsClosed ? "z" : ""); } ////// SerializeData - Serialize the contents of this Figure to the provided context. /// internal void SerializeData(StreamGeometryContext ctx) { ctx.BeginFigure(StartPoint, IsFilled, IsClosed); PathSegmentCollection segments = Segments; int pathSegmentCount = segments == null ? 0 : segments.Count; for (int i = 0; i < pathSegmentCount; i++) { segments.Internal_GetItem(i).SerializeData(ctx); } } } #endregion } // 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
- CollectionContainer.cs
- PageSetupDialog.cs
- _HeaderInfoTable.cs
- DocumentEventArgs.cs
- PeerResolverElement.cs
- MessageQueuePermission.cs
- DomNameTable.cs
- SubclassTypeValidatorAttribute.cs
- GeneralTransform3DCollection.cs
- Random.cs
- MarkupProperty.cs
- _AutoWebProxyScriptEngine.cs
- ExceptionRoutedEventArgs.cs
- ExpressionEditorAttribute.cs
- X509ServiceCertificateAuthenticationElement.cs
- ConsoleKeyInfo.cs
- ChannelManagerService.cs
- SecureConversationServiceCredential.cs
- compensatingcollection.cs
- NamespaceInfo.cs
- SqlConnectionHelper.cs
- BasicHttpMessageCredentialType.cs
- ValidationHelper.cs
- SqlClientWrapperSmiStreamChars.cs
- EventMappingSettings.cs
- TTSVoice.cs
- TextWriter.cs
- TcpAppDomainProtocolHandler.cs
- RootBuilder.cs
- NativeMethodsCLR.cs
- XmlSchemaSimpleTypeRestriction.cs
- StateFinalizationDesigner.cs
- StructureChangedEventArgs.cs
- ContractMapping.cs
- ToolStripDropDownMenu.cs
- DCSafeHandle.cs
- InputProcessorProfilesLoader.cs
- IssuedTokensHeader.cs
- AlphaSortedEnumConverter.cs
- ExpandSegment.cs
- ActivityExecutorDelegateInfo.cs
- IsolatedStorageFileStream.cs
- IfJoinedCondition.cs
- DataPagerFieldItem.cs
- DataGridViewRowEventArgs.cs
- ApplicationServiceManager.cs
- LongMinMaxAggregationOperator.cs
- HttpServerVarsCollection.cs
- CodeGenerator.cs
- TextServicesCompartment.cs
- PointLightBase.cs
- log.cs
- StateItem.cs
- TextTreeInsertUndoUnit.cs
- CompressStream.cs
- QuaternionConverter.cs
- WebUtil.cs
- ListBoxAutomationPeer.cs
- RoutedPropertyChangedEventArgs.cs
- CompositeScriptReference.cs
- QilTargetType.cs
- ConfigurationConverterBase.cs
- InvokeMethod.cs
- VarRemapper.cs
- SettingsBindableAttribute.cs
- TextBoxBaseDesigner.cs
- EmptyReadOnlyDictionaryInternal.cs
- WebBrowserContainer.cs
- Underline.cs
- CachedTypeface.cs
- CatalogZoneBase.cs
- TextFormatter.cs
- OuterGlowBitmapEffect.cs
- ServiceOperationDetailViewControl.cs
- MarkerProperties.cs
- TextTrailingCharacterEllipsis.cs
- XmlSchemaInclude.cs
- BaseDataBoundControl.cs
- SingleAnimationUsingKeyFrames.cs
- PackageDocument.cs
- ImageListDesigner.cs
- TimerElapsedEvenArgs.cs
- WorkflowFileItem.cs
- Comparer.cs
- RangeValidator.cs
- RedBlackList.cs
- AspNetHostingPermission.cs
- ObjectHelper.cs
- Highlights.cs
- TypeConverter.cs
- RemotingServices.cs
- GenericsInstances.cs
- ProjectionQueryOptionExpression.cs
- XmlNodeChangedEventArgs.cs
- CssClassPropertyAttribute.cs
- MultiByteCodec.cs
- UserNamePasswordValidationMode.cs
- PictureBox.cs
- TableLayoutSettingsTypeConverter.cs
- DataServiceQuery.cs