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
- QueueProcessor.cs
- ObjectContextServiceProvider.cs
- ResourceProviderFactory.cs
- HttpVersion.cs
- SqlParameter.cs
- XpsLiterals.cs
- ExtendedPropertyCollection.cs
- ContextMenuAutomationPeer.cs
- HoistedLocals.cs
- DataServiceQuery.cs
- GridViewRowCollection.cs
- UrlPath.cs
- BuildProvider.cs
- NativeMethodsOther.cs
- JavaScriptSerializer.cs
- RegisteredHiddenField.cs
- SafeRightsManagementHandle.cs
- WebException.cs
- ShaderRenderModeValidation.cs
- TargetParameterCountException.cs
- DataColumnPropertyDescriptor.cs
- DSASignatureFormatter.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- TextReader.cs
- QueryStringHandler.cs
- TimeoutException.cs
- Number.cs
- Metafile.cs
- listitem.cs
- CrossAppDomainChannel.cs
- ExceptionRoutedEventArgs.cs
- XamlClipboardData.cs
- SystemWebSectionGroup.cs
- TextTrailingCharacterEllipsis.cs
- ElementNotEnabledException.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- NodeInfo.cs
- SimpleExpression.cs
- RemotingAttributes.cs
- PropertyGridView.cs
- Matrix.cs
- ResourceLoader.cs
- HostedElements.cs
- PoisonMessageException.cs
- PermissionSet.cs
- NamespaceExpr.cs
- BinaryConverter.cs
- DiscoveryDocumentSerializer.cs
- InvalidProgramException.cs
- DependencySource.cs
- CursorConverter.cs
- SqlUtils.cs
- CodeVariableReferenceExpression.cs
- AdornerDecorator.cs
- CodeGen.cs
- SessionStateContainer.cs
- FloaterParagraph.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- InvariantComparer.cs
- SafeUserTokenHandle.cs
- XmlConvert.cs
- DefaultPrintController.cs
- DrawItemEvent.cs
- QilVisitor.cs
- Overlapped.cs
- DynamicILGenerator.cs
- ConnectionOrientedTransportBindingElement.cs
- StorageMappingItemLoader.cs
- TypeSource.cs
- FutureFactory.cs
- VirtualPathProvider.cs
- ToolStripAdornerWindowService.cs
- RegistryKey.cs
- ConstraintConverter.cs
- ResourcePermissionBaseEntry.cs
- DataKey.cs
- NamedPipeTransportSecurity.cs
- EncryptedData.cs
- HtmlTitle.cs
- TrustSection.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- NotFiniteNumberException.cs
- DbConnectionPoolIdentity.cs
- namescope.cs
- ProxyElement.cs
- FaultHandlingFilter.cs
- XPathPatternParser.cs
- ComponentEvent.cs
- HighContrastHelper.cs
- HttpWriter.cs
- XmlBufferReader.cs
- ListViewUpdatedEventArgs.cs
- XmlSchemaSimpleTypeRestriction.cs
- filewebresponse.cs
- TextParaClient.cs
- DecoderReplacementFallback.cs
- ServerTooBusyException.cs
- DisplayInformation.cs
- AliasExpr.cs
- SQLMembershipProvider.cs