Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / DashStyle.cs / 1305600 / DashStyle.cs
//----------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// Description: Implementation of the class DashStyle
//
// History: 11\15\2004: Michka - Created it
//
//---------------------------------------------------------------------------
using System;
using MS.Internal;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Diagnostics;
using System.Reflection;
using System.Collections;
using System.Collections.Generic;
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.Runtime.InteropServices;
using System.Security;
using System.Security.Permissions;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows.Media
{
#region DashStyle
///
/// This class captures the array of dashe and gap lengths and the dash offset.
///
[Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)]
public partial class DashStyle : Animatable, DUCE.IResource
{
#region Constructors
///
/// Default constructor
///
public DashStyle()
{
}
///
/// Constructor from an array and offset
///
/// The array of lengths of dashes and gaps, measured in Thickness units.
/// If the value of dashes is null then the style will be solid
///
///
/// Determines where in the dash sequence the stroke will start
///
///
public DashStyle(IEnumerable dashes, Double offset)
{
Offset = offset;
if (dashes != null)
{
Dashes = new DoubleCollection(dashes);
}
}
#endregion Constructors
#region Internal Methods
///
/// Returns the dashes information.
///
///
/// Critical: Returns a pointer and manipulates unsafe code.This data
/// is safe to expose, it is the pointer manipulation that makes it risky.
///
[SecurityCritical]
internal unsafe void GetDashData(MIL_PEN_DATA* pData, out double[] dashArray)
{
DoubleCollection vDashes = Dashes;
int count = 0;
if (vDashes != null)
{
count = vDashes.Count;
}
unsafe
{
pData->DashArraySize = (UInt32)count * sizeof(double);
pData->DashOffset = Offset;
}
if (count > 0)
{
dashArray = vDashes._collection.ToArray();
}
else
{
dashArray = null;
}
}
#endregion Internal Methods
}
#endregion
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// Description: Implementation of the class DashStyle
//
// History: 11\15\2004: Michka - Created it
//
//---------------------------------------------------------------------------
using System;
using MS.Internal;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Diagnostics;
using System.Reflection;
using System.Collections;
using System.Collections.Generic;
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.Runtime.InteropServices;
using System.Security;
using System.Security.Permissions;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows.Media
{
#region DashStyle
///
/// This class captures the array of dashe and gap lengths and the dash offset.
///
[Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)]
public partial class DashStyle : Animatable, DUCE.IResource
{
#region Constructors
///
/// Default constructor
///
public DashStyle()
{
}
///
/// Constructor from an array and offset
///
/// The array of lengths of dashes and gaps, measured in Thickness units.
/// If the value of dashes is null then the style will be solid
///
///
/// Determines where in the dash sequence the stroke will start
///
///
public DashStyle(IEnumerable dashes, Double offset)
{
Offset = offset;
if (dashes != null)
{
Dashes = new DoubleCollection(dashes);
}
}
#endregion Constructors
#region Internal Methods
///
/// Returns the dashes information.
///
///
/// Critical: Returns a pointer and manipulates unsafe code.This data
/// is safe to expose, it is the pointer manipulation that makes it risky.
///
[SecurityCritical]
internal unsafe void GetDashData(MIL_PEN_DATA* pData, out double[] dashArray)
{
DoubleCollection vDashes = Dashes;
int count = 0;
if (vDashes != null)
{
count = vDashes.Count;
}
unsafe
{
pData->DashArraySize = (UInt32)count * sizeof(double);
pData->DashOffset = Offset;
}
if (count > 0)
{
dashArray = vDashes._collection.ToArray();
}
else
{
dashArray = null;
}
}
#endregion Internal Methods
}
#endregion
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XamlInterfaces.cs
- XamlInt32CollectionSerializer.cs
- VariantWrapper.cs
- OpCopier.cs
- ComplexTypeEmitter.cs
- BufferModesCollection.cs
- AnimationClock.cs
- StringToken.cs
- SQLInt16.cs
- Viewport3DAutomationPeer.cs
- AsymmetricKeyExchangeDeformatter.cs
- ArgumentException.cs
- WebSysDescriptionAttribute.cs
- ArrayExtension.cs
- FormatControl.cs
- HtmlInputImage.cs
- TextTreeText.cs
- SineEase.cs
- EmptyElement.cs
- RequestUriProcessor.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- DocumentPaginator.cs
- TextTreeRootTextBlock.cs
- RuntimeConfig.cs
- SynchronizationValidator.cs
- System.Data.OracleClient_BID.cs
- OutputCacheProfile.cs
- BulletedListEventArgs.cs
- DesignerSerializationOptionsAttribute.cs
- documentsequencetextpointer.cs
- GenericWebPart.cs
- HashCodeCombiner.cs
- TableRowCollection.cs
- listitem.cs
- SessionPageStateSection.cs
- XmlSchemaValidator.cs
- TaskCanceledException.cs
- AccessedThroughPropertyAttribute.cs
- PageBuildProvider.cs
- RepeaterItemCollection.cs
- ConnectionManagementSection.cs
- TableRow.cs
- FlowchartDesigner.Helpers.cs
- DataBoundControlActionList.cs
- ApplicationHost.cs
- SignatureToken.cs
- SessionPageStateSection.cs
- PeerToPeerException.cs
- AssemblyName.cs
- SecurityManager.cs
- EventPrivateKey.cs
- smtpconnection.cs
- SettingsProperty.cs
- SoapFault.cs
- SurrogateSelector.cs
- TokenBasedSetEnumerator.cs
- FilteredDataSetHelper.cs
- StrongNameUtility.cs
- CompressStream.cs
- EncoderReplacementFallback.cs
- SubMenuStyle.cs
- CredentialManagerDialog.cs
- DataGridView.cs
- BinaryExpression.cs
- TextEndOfLine.cs
- DataGridColumn.cs
- StrokeNode.cs
- SelectionItemProviderWrapper.cs
- DigestComparer.cs
- DeviceContexts.cs
- TemplatePropertyEntry.cs
- SingleObjectCollection.cs
- NonValidatingSecurityTokenAuthenticator.cs
- ButtonBaseAdapter.cs
- DynamicResourceExtension.cs
- EntityClassGenerator.cs
- BitHelper.cs
- URIFormatException.cs
- RequestContextBase.cs
- SystemIPInterfaceProperties.cs
- XmlSchemaSimpleTypeRestriction.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- NullToBooleanConverter.cs
- AccessibleObject.cs
- CredentialCache.cs
- CodeAttributeArgument.cs
- PropertyExpression.cs
- MetafileHeader.cs
- ThaiBuddhistCalendar.cs
- TriggerAction.cs
- XsdCachingReader.cs
- ProxyGenerator.cs
- GridItemPattern.cs
- EntityParameterCollection.cs
- ReverseInheritProperty.cs
- AutomationTextAttribute.cs
- CodeTryCatchFinallyStatement.cs
- XPathConvert.cs
- OletxResourceManager.cs
- PhonemeConverter.cs