Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Media / BezierSegment.cs / 1 / BezierSegment.cs
//------------------------------------------------------------------------------
// Microsoft Avalon
// Copyright (c) Microsoft Corporation, 2001
//
// File: BezierSegment.cs
//-----------------------------------------------------------------------------
using System;
using MS.Internal;
using MS.Internal.PresentationCore;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Reflection;
using System.Collections;
using System.Text;
using System.Globalization;
using System.Windows.Media;
using System.Windows;
using System.Text.RegularExpressions;
using System.Windows.Media.Composition;
using System.Windows.Media.Animation;
using System.Diagnostics;
using System.Security;
using System.Security.Permissions;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows.Media
{
///
/// BezierSegment
///
public sealed partial class BezierSegment : PathSegment
{
#region Constructors
///
///
///
public BezierSegment() : base()
{
}
///
///
///
public BezierSegment(Point point1, Point point2, Point point3, bool isStroked)
{
Point1 = point1;
Point2 = point2;
Point3 = point3;
IsStroked = isStroked;
}
// Internal constructor supporting smooth joins between segments
internal BezierSegment(Point point1, Point point2, Point point3, bool isStroked, bool isSmoothJoin)
{
Point1 = point1;
Point2 = point2;
Point3 = point3;
IsStroked = isStroked;
IsSmoothJoin = isSmoothJoin;
}
#endregion
#region AddToFigure
internal override void AddToFigure(
Matrix matrix, // The transformation matrid
PathFigure figure, // The figure to add to
ref Point current) // Out: Segment endpoint, not transformed
{
current = Point3;
if (matrix.IsIdentity)
{
figure.Segments.Add(this);
}
else
{
Point pt1 = Point1;
pt1 *= matrix;
Point pt2 = Point2;
pt2 *= matrix;
Point pt3 = current;
pt3 *= matrix;
figure.Segments.Add(new BezierSegment(pt1, pt2, pt3, IsStroked, IsSmoothJoin));
}
}
#endregion
#region Resource
///
/// SerializeData - Serialize the contents of this Segment to the provided context.
///
internal override void SerializeData(StreamGeometryContext ctx)
{
ctx.BezierTo(Point1, Point2, Point3, IsStroked, IsSmoothJoin);
}
internal override bool IsCurved()
{
return true;
}
///
/// 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 override string ConvertToString(string format, IFormatProvider provider)
{
// Helper to get the numeric list separator for a given culture.
char separator = MS.Internal.TokenizerHelper.GetNumericListSeparator(provider);
return String.Format(provider,
"C{1:" + format + "}{0}{2:" + format + "}{0}{3:" + format + "}",
separator,
Point1,
Point2,
Point3
);
}
#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
- EventNotify.cs
- IconHelper.cs
- DbProviderFactory.cs
- VerificationAttribute.cs
- ManualResetEventSlim.cs
- CodeDOMUtility.cs
- MimeAnyImporter.cs
- EdmRelationshipRoleAttribute.cs
- PaginationProgressEventArgs.cs
- TableLayoutStyleCollection.cs
- Errors.cs
- HttpPostProtocolImporter.cs
- ByteArrayHelperWithString.cs
- RadioButtonAutomationPeer.cs
- GeometryGroup.cs
- LinkedResource.cs
- FileNotFoundException.cs
- TargetControlTypeAttribute.cs
- PageCatalogPartDesigner.cs
- DispatcherSynchronizationContext.cs
- HttpServerVarsCollection.cs
- UiaCoreProviderApi.cs
- InputLanguageManager.cs
- NavigatorOutput.cs
- DbConnectionPoolCounters.cs
- AutomationPropertyInfo.cs
- InternalsVisibleToAttribute.cs
- EdmFunction.cs
- Icon.cs
- ProgressChangedEventArgs.cs
- PtsContext.cs
- SurrogateDataContract.cs
- DispatchWrapper.cs
- ProviderSettings.cs
- OrderedHashRepartitionStream.cs
- TTSEngineProxy.cs
- indexingfiltermarshaler.cs
- ChildrenQuery.cs
- WebBrowser.cs
- ToolStripDropDown.cs
- TransportReplyChannelAcceptor.cs
- SingleSelectRootGridEntry.cs
- HandlerFactoryCache.cs
- PagesSection.cs
- ObjectReferenceStack.cs
- Component.cs
- MobilePage.cs
- BinaryConverter.cs
- UnSafeCharBuffer.cs
- _SSPIWrapper.cs
- LineVisual.cs
- ChannelServices.cs
- WsdlInspector.cs
- RegexFCD.cs
- PasswordDeriveBytes.cs
- SiteMap.cs
- DragDrop.cs
- OleDbRowUpdatingEvent.cs
- ProfilePropertyNameValidator.cs
- SortQuery.cs
- LambdaSerializationException.cs
- LassoHelper.cs
- CallSiteHelpers.cs
- _LocalDataStore.cs
- TextEncodedRawTextWriter.cs
- AstTree.cs
- LocalBuilder.cs
- MonitoringDescriptionAttribute.cs
- BamlBinaryWriter.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- InvokeMethodActivity.cs
- DesignerCategoryAttribute.cs
- ExtensionDataObject.cs
- AssemblyResourceLoader.cs
- ISAPIRuntime.cs
- Encoder.cs
- TypeToken.cs
- Condition.cs
- ToolStripSplitButton.cs
- AndCondition.cs
- DayRenderEvent.cs
- AnnotationAuthorChangedEventArgs.cs
- Missing.cs
- WebPartDisplayModeCollection.cs
- EditorPart.cs
- XmlMemberMapping.cs
- CodeFieldReferenceExpression.cs
- DBConnectionString.cs
- OutputCacheModule.cs
- SqlCacheDependencyDatabaseCollection.cs
- TCEAdapterGenerator.cs
- SecurityPolicySection.cs
- TableRowCollection.cs
- StrokeNodeData.cs
- DockingAttribute.cs
- CultureSpecificStringDictionary.cs
- LineSegment.cs
- StateDesigner.CommentLayoutGlyph.cs
- OdbcStatementHandle.cs
- DoubleStorage.cs