Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CommonUI / System / Drawing / Advanced / AdjustableArrowCap.cs / 1305376 / AdjustableArrowCap.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Drawing.Drawing2D {
using Microsoft.Win32;
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Internal;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
///
///
/// Represents an adjustable arrow-shaped line
/// cap.
///
public sealed class AdjustableArrowCap : CustomLineCap {
internal AdjustableArrowCap(IntPtr nativeCap) :
base(nativeCap) {}
///
///
/// Initializes a new instance of the class with the specified width and
/// height.
///
[ResourceExposure(ResourceScope.Process)]
[ResourceConsumption(ResourceScope.Process)]
public AdjustableArrowCap(float width,
float height) :
this(width, height, true) {}
///
///
///
/// Initializes a new instance of the class with the specified width,
/// height, and fill property.
///
///
[ResourceExposure(ResourceScope.Process)]
[ResourceConsumption(ResourceScope.Process)]
public AdjustableArrowCap(float width,
float height,
bool isFilled)
{
IntPtr nativeCap = IntPtr.Zero;
int status = SafeNativeMethods.Gdip.GdipCreateAdjustableArrowCap(
height, width, isFilled, out nativeCap);
if (status != SafeNativeMethods.Gdip.Ok)
throw SafeNativeMethods.Gdip.StatusException(status);
SetNativeLineCap(nativeCap);
}
private void _SetHeight(float height)
{
int status = SafeNativeMethods.Gdip.GdipSetAdjustableArrowCapHeight(new HandleRef(this, nativeCap), height);
if (status != SafeNativeMethods.Gdip.Ok)
throw SafeNativeMethods.Gdip.StatusException(status);
}
private float _GetHeight()
{
float height;
int status = SafeNativeMethods.Gdip.GdipGetAdjustableArrowCapHeight(new HandleRef(this, nativeCap), out height);
if (status != SafeNativeMethods.Gdip.Ok)
throw SafeNativeMethods.Gdip.StatusException(status);
return height;
}
///
///
/// Gets or sets the height of the arrow cap.
///
public float Height
{
get { return _GetHeight(); }
set { _SetHeight(value); }
}
private void _SetWidth(float width)
{
int status = SafeNativeMethods.Gdip.GdipSetAdjustableArrowCapWidth(new HandleRef(this, nativeCap), width);
if (status != SafeNativeMethods.Gdip.Ok)
throw SafeNativeMethods.Gdip.StatusException(status);
}
private float _GetWidth()
{
float width;
int status = SafeNativeMethods.Gdip.GdipGetAdjustableArrowCapWidth(new HandleRef(this, nativeCap), out width);
if (status != SafeNativeMethods.Gdip.Ok)
throw SafeNativeMethods.Gdip.StatusException(status);
return width;
}
///
///
/// Gets or sets the width of the arrow cap.
///
public float Width
{
get { return _GetWidth(); }
set { _SetWidth(value); }
}
private void _SetMiddleInset(float middleInset)
{
int status = SafeNativeMethods.Gdip.GdipSetAdjustableArrowCapMiddleInset(new HandleRef(this, nativeCap), middleInset);
if (status != SafeNativeMethods.Gdip.Ok)
throw SafeNativeMethods.Gdip.StatusException(status);
}
private float _GetMiddleInset()
{
float middleInset;
int status = SafeNativeMethods.Gdip.GdipGetAdjustableArrowCapMiddleInset(new HandleRef(this, nativeCap), out middleInset);
if (status != SafeNativeMethods.Gdip.Ok)
throw SafeNativeMethods.Gdip.StatusException(status);
return middleInset;
}
///
///
///
/// Gets or set the number of pixels between the outline of the arrow cap and the fill.
///
///
public float MiddleInset
{
get { return _GetMiddleInset(); }
set { _SetMiddleInset(value); }
}
private void _SetFillState(bool isFilled)
{
int status = SafeNativeMethods.Gdip.GdipSetAdjustableArrowCapFillState(new HandleRef(this, nativeCap), isFilled);
if (status != SafeNativeMethods.Gdip.Ok)
throw SafeNativeMethods.Gdip.StatusException(status);
}
private bool _IsFilled()
{
bool isFilled = false;
int status = SafeNativeMethods.Gdip.GdipGetAdjustableArrowCapFillState(new HandleRef(this, nativeCap), out isFilled);
if (status != SafeNativeMethods.Gdip.Ok)
throw SafeNativeMethods.Gdip.StatusException(status);
return isFilled;
}
///
///
/// Gets or sets a value indicating whether the
/// arrow cap is filled.
///
public bool Filled
{
get { return _IsFilled(); }
set { _SetFillState(value); }
}
}
}
// 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
- InfoCardMasterKey.cs
- XmlSchemaValidator.cs
- StructureChangedEventArgs.cs
- WpfPayload.cs
- UserControl.cs
- WebPartVerbsEventArgs.cs
- InstanceContext.cs
- TransformPattern.cs
- DefaultWorkflowLoaderService.cs
- SingleBodyParameterMessageFormatter.cs
- ImageDesigner.cs
- TextElementEditingBehaviorAttribute.cs
- SmtpAuthenticationManager.cs
- MenuRenderer.cs
- SystemWebExtensionsSectionGroup.cs
- ConfigurationLocation.cs
- EntityDataSourceStatementEditorForm.cs
- TextBox.cs
- ThemeDictionaryExtension.cs
- Regex.cs
- FreezableDefaultValueFactory.cs
- PropertyReference.cs
- SafeProcessHandle.cs
- MoveSizeWinEventHandler.cs
- DynamicDocumentPaginator.cs
- PropagatorResult.cs
- UseLicense.cs
- TraceSection.cs
- PageAdapter.cs
- WebBrowserHelper.cs
- TextServicesPropertyRanges.cs
- SiteMapNodeItem.cs
- CookielessData.cs
- DataGridClipboardCellContent.cs
- DataRelation.cs
- contentDescriptor.cs
- JapaneseCalendar.cs
- LicenseProviderAttribute.cs
- CheckableControlBaseAdapter.cs
- MapPathBasedVirtualPathProvider.cs
- PeerNameResolver.cs
- UiaCoreApi.cs
- TemplateBamlRecordReader.cs
- ProtocolsConfiguration.cs
- ConsumerConnectionPoint.cs
- KeyboardNavigation.cs
- SQLDouble.cs
- SetStoryboardSpeedRatio.cs
- TransformCollection.cs
- NamespaceList.cs
- SpecularMaterial.cs
- SmtpDateTime.cs
- CodeThrowExceptionStatement.cs
- HeaderedContentControl.cs
- EntityContainerEntitySetDefiningQuery.cs
- DataGridViewHeaderCell.cs
- FontEmbeddingManager.cs
- XamlClipboardData.cs
- WebPartDeleteVerb.cs
- PersonalizationStateQuery.cs
- TimeSpan.cs
- DeferredBinaryDeserializerExtension.cs
- WebPartExportVerb.cs
- ProcessModelInfo.cs
- InternalControlCollection.cs
- Application.cs
- TaskExtensions.cs
- TextEditorMouse.cs
- TextBox.cs
- ToolStripItemEventArgs.cs
- DataSourceXmlElementAttribute.cs
- SessionStateItemCollection.cs
- SizeF.cs
- ActivityBindForm.cs
- RoleManagerSection.cs
- SessionPageStateSection.cs
- OracleParameterCollection.cs
- ArgIterator.cs
- String.cs
- SecurityUtils.cs
- AsymmetricCryptoHandle.cs
- DataTableReader.cs
- Stroke.cs
- Deflater.cs
- OleDbConnection.cs
- SectionInput.cs
- DependencyPropertyHelper.cs
- DocumentAutomationPeer.cs
- Property.cs
- QilInvoke.cs
- ImageAttributes.cs
- AmbientLight.cs
- XmlNamespaceDeclarationsAttribute.cs
- SubtreeProcessor.cs
- StorageMappingItemCollection.cs
- RSAPKCS1SignatureFormatter.cs
- HtmlInputControl.cs
- IfJoinedCondition.cs
- LeafCellTreeNode.cs
- AttributeSetAction.cs