Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CommonUI / System / Drawing / SystemPens.cs / 1305376 / SystemPens.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.Drawing { using System.Diagnostics; using System; using System.Runtime.Versioning; ////// /// Pens for select Windows system-wide colors. Whenever possible, try to use /// SystemPens and SystemBrushes rather than SystemColors. /// public sealed class SystemPens { static readonly object SystemPensKey = new object(); private SystemPens() { } ////// /// Pen is the color of the filled area of an active window border. /// public static Pen ActiveBorder { get { return FromSystemColor(SystemColors.ActiveBorder); } } ////// /// Pen is the color of the background of an active title bar caption. /// public static Pen ActiveCaption { get { return FromSystemColor(SystemColors.ActiveCaption); } } ////// /// Pen is the color of the active window's caption text. /// public static Pen ActiveCaptionText { get { return FromSystemColor(SystemColors.ActiveCaptionText); } } ////// /// Pen is the color of the application workspace. The application workspace /// is the area in a multiple document view that is not being occupied /// by documents. /// public static Pen AppWorkspace { get { return FromSystemColor(SystemColors.AppWorkspace); } } ////// /// Pen for the ButtonFace system color. /// public static Pen ButtonFace { get { return FromSystemColor(SystemColors.ButtonFace); } } ////// /// Pen for the ButtonHighlight system color. /// public static Pen ButtonHighlight { get { return FromSystemColor(SystemColors.ButtonHighlight); } } ////// /// Pen for the ButtonShadow system color. /// public static Pen ButtonShadow { get { return FromSystemColor(SystemColors.ButtonShadow); } } ////// /// Pen is the color of a button or control. /// public static Pen Control { get { return FromSystemColor(SystemColors.Control); } } ////// /// Pen is the color of the text on a button or control. /// public static Pen ControlText { get { return FromSystemColor(SystemColors.ControlText); } } ////// /// Pen is the color of the shadow part of a 3D element /// public static Pen ControlDark { get { return FromSystemColor(SystemColors.ControlDark); } } ////// /// Pen is the color of the darkest part of a 3D element /// public static Pen ControlDarkDark { get { return FromSystemColor(SystemColors.ControlDarkDark); } } ////// /// public static Pen ControlLight { get { return FromSystemColor(SystemColors.ControlLight); } } ///[To be supplied.] ////// /// Pen is the color of the lightest part of a 3D element /// public static Pen ControlLightLight { get { return FromSystemColor(SystemColors.ControlLightLight); } } ////// /// Pen is the color of the desktop. /// public static Pen Desktop { get { return FromSystemColor(SystemColors.Desktop); } } ////// /// Pen for the GradientActiveCaption system color. /// public static Pen GradientActiveCaption { get { return FromSystemColor(SystemColors.GradientActiveCaption); } } ////// /// Pen for the GradientInactiveCaption system color. /// public static Pen GradientInactiveCaption { get { return FromSystemColor(SystemColors.GradientInactiveCaption); } } ////// /// Pen is the color of disabled text. /// public static Pen GrayText { get { return FromSystemColor(SystemColors.GrayText); } } ////// /// Pen is the color of a highlighted background. /// public static Pen Highlight { get { return FromSystemColor(SystemColors.Highlight); } } ////// /// Pen is the color of highlighted text. /// public static Pen HighlightText { get { return FromSystemColor(SystemColors.HighlightText); } } ////// /// Pen is the color used to represent hot tracking. /// public static Pen HotTrack { get { return FromSystemColor(SystemColors.HotTrack); } } ////// /// Pen is the color if an inactive window border. /// public static Pen InactiveBorder { get { return FromSystemColor(SystemColors.InactiveBorder); } } ////// /// Pen is the color of an inactive caption bar. /// public static Pen InactiveCaption { get { return FromSystemColor(SystemColors.InactiveCaption); } } ////// /// Pen is the color of an inactive window's caption text. /// public static Pen InactiveCaptionText { get { return FromSystemColor(SystemColors.InactiveCaptionText); } } ////// /// Pen is the color of the info tooltip's background. /// public static Pen Info { get { return FromSystemColor(SystemColors.Info); } } ////// /// Pen is the color of the info tooltip's text. /// public static Pen InfoText { get { return FromSystemColor(SystemColors.InfoText); } } ////// /// Pen is the color of the background of a menu. /// public static Pen Menu { get { return FromSystemColor(SystemColors.Menu); } } ////// /// Pen is the color of the background of a menu bar. /// public static Pen MenuBar { get { return FromSystemColor(SystemColors.MenuBar); } } ////// /// Pen for the MenuHighlight system color. /// public static Pen MenuHighlight { get { return FromSystemColor(SystemColors.MenuHighlight); } } ////// /// Pen is the color of the menu text. /// public static Pen MenuText { get { return FromSystemColor(SystemColors.MenuText); } } ////// /// Pen is the color of the scroll bar area that is not being used by the /// thumb button. /// public static Pen ScrollBar { get { return FromSystemColor(SystemColors.ScrollBar); } } ////// /// Pen is the color of the client area of a window. /// public static Pen Window { get { return FromSystemColor(SystemColors.Window); } } ////// /// Pen is the color of the window frame. /// public static Pen WindowFrame { get { return FromSystemColor(SystemColors.WindowFrame); } } ////// /// Pen is the color of a window's text. /// public static Pen WindowText { get { return FromSystemColor(SystemColors.WindowText); } } ////// /// Retrieves a pen given a system color. An error will be raised /// if the color provide is not a system color. /// [ResourceExposure(ResourceScope.Process)] [ResourceConsumption(ResourceScope.Process | ResourceScope.AppDomain, ResourceScope.Process | ResourceScope.AppDomain)] public static Pen FromSystemColor(Color c) { if (!c.IsSystemColor) { throw new ArgumentException(SR.GetString(SR.ColorNotSystemColor, c.ToString())); } Pen[] systemPens = (Pen[])SafeNativeMethods.Gdip.ThreadData[SystemPensKey]; if (systemPens == null) { systemPens = new Pen[(int)KnownColor.WindowText + (int)KnownColor.MenuHighlight - (int)KnownColor.YellowGreen]; SafeNativeMethods.Gdip.ThreadData[SystemPensKey] = systemPens; } int idx = (int)c.ToKnownColor(); if (idx > (int)KnownColor.YellowGreen) { idx -= (int)KnownColor.YellowGreen - (int)KnownColor.WindowText; } idx--; Debug.Assert(idx >= 0 && idx < systemPens.Length, "System colors have been added but our system color array has not been expanded."); if (systemPens[idx] == null) { systemPens[idx] = new Pen(c, true); } return systemPens[idx]; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.Drawing { using System.Diagnostics; using System; using System.Runtime.Versioning; ////// /// Pens for select Windows system-wide colors. Whenever possible, try to use /// SystemPens and SystemBrushes rather than SystemColors. /// public sealed class SystemPens { static readonly object SystemPensKey = new object(); private SystemPens() { } ////// /// Pen is the color of the filled area of an active window border. /// public static Pen ActiveBorder { get { return FromSystemColor(SystemColors.ActiveBorder); } } ////// /// Pen is the color of the background of an active title bar caption. /// public static Pen ActiveCaption { get { return FromSystemColor(SystemColors.ActiveCaption); } } ////// /// Pen is the color of the active window's caption text. /// public static Pen ActiveCaptionText { get { return FromSystemColor(SystemColors.ActiveCaptionText); } } ////// /// Pen is the color of the application workspace. The application workspace /// is the area in a multiple document view that is not being occupied /// by documents. /// public static Pen AppWorkspace { get { return FromSystemColor(SystemColors.AppWorkspace); } } ////// /// Pen for the ButtonFace system color. /// public static Pen ButtonFace { get { return FromSystemColor(SystemColors.ButtonFace); } } ////// /// Pen for the ButtonHighlight system color. /// public static Pen ButtonHighlight { get { return FromSystemColor(SystemColors.ButtonHighlight); } } ////// /// Pen for the ButtonShadow system color. /// public static Pen ButtonShadow { get { return FromSystemColor(SystemColors.ButtonShadow); } } ////// /// Pen is the color of a button or control. /// public static Pen Control { get { return FromSystemColor(SystemColors.Control); } } ////// /// Pen is the color of the text on a button or control. /// public static Pen ControlText { get { return FromSystemColor(SystemColors.ControlText); } } ////// /// Pen is the color of the shadow part of a 3D element /// public static Pen ControlDark { get { return FromSystemColor(SystemColors.ControlDark); } } ////// /// Pen is the color of the darkest part of a 3D element /// public static Pen ControlDarkDark { get { return FromSystemColor(SystemColors.ControlDarkDark); } } ////// /// public static Pen ControlLight { get { return FromSystemColor(SystemColors.ControlLight); } } ///[To be supplied.] ////// /// Pen is the color of the lightest part of a 3D element /// public static Pen ControlLightLight { get { return FromSystemColor(SystemColors.ControlLightLight); } } ////// /// Pen is the color of the desktop. /// public static Pen Desktop { get { return FromSystemColor(SystemColors.Desktop); } } ////// /// Pen for the GradientActiveCaption system color. /// public static Pen GradientActiveCaption { get { return FromSystemColor(SystemColors.GradientActiveCaption); } } ////// /// Pen for the GradientInactiveCaption system color. /// public static Pen GradientInactiveCaption { get { return FromSystemColor(SystemColors.GradientInactiveCaption); } } ////// /// Pen is the color of disabled text. /// public static Pen GrayText { get { return FromSystemColor(SystemColors.GrayText); } } ////// /// Pen is the color of a highlighted background. /// public static Pen Highlight { get { return FromSystemColor(SystemColors.Highlight); } } ////// /// Pen is the color of highlighted text. /// public static Pen HighlightText { get { return FromSystemColor(SystemColors.HighlightText); } } ////// /// Pen is the color used to represent hot tracking. /// public static Pen HotTrack { get { return FromSystemColor(SystemColors.HotTrack); } } ////// /// Pen is the color if an inactive window border. /// public static Pen InactiveBorder { get { return FromSystemColor(SystemColors.InactiveBorder); } } ////// /// Pen is the color of an inactive caption bar. /// public static Pen InactiveCaption { get { return FromSystemColor(SystemColors.InactiveCaption); } } ////// /// Pen is the color of an inactive window's caption text. /// public static Pen InactiveCaptionText { get { return FromSystemColor(SystemColors.InactiveCaptionText); } } ////// /// Pen is the color of the info tooltip's background. /// public static Pen Info { get { return FromSystemColor(SystemColors.Info); } } ////// /// Pen is the color of the info tooltip's text. /// public static Pen InfoText { get { return FromSystemColor(SystemColors.InfoText); } } ////// /// Pen is the color of the background of a menu. /// public static Pen Menu { get { return FromSystemColor(SystemColors.Menu); } } ////// /// Pen is the color of the background of a menu bar. /// public static Pen MenuBar { get { return FromSystemColor(SystemColors.MenuBar); } } ////// /// Pen for the MenuHighlight system color. /// public static Pen MenuHighlight { get { return FromSystemColor(SystemColors.MenuHighlight); } } ////// /// Pen is the color of the menu text. /// public static Pen MenuText { get { return FromSystemColor(SystemColors.MenuText); } } ////// /// Pen is the color of the scroll bar area that is not being used by the /// thumb button. /// public static Pen ScrollBar { get { return FromSystemColor(SystemColors.ScrollBar); } } ////// /// Pen is the color of the client area of a window. /// public static Pen Window { get { return FromSystemColor(SystemColors.Window); } } ////// /// Pen is the color of the window frame. /// public static Pen WindowFrame { get { return FromSystemColor(SystemColors.WindowFrame); } } ////// /// Pen is the color of a window's text. /// public static Pen WindowText { get { return FromSystemColor(SystemColors.WindowText); } } ////// /// Retrieves a pen given a system color. An error will be raised /// if the color provide is not a system color. /// [ResourceExposure(ResourceScope.Process)] [ResourceConsumption(ResourceScope.Process | ResourceScope.AppDomain, ResourceScope.Process | ResourceScope.AppDomain)] public static Pen FromSystemColor(Color c) { if (!c.IsSystemColor) { throw new ArgumentException(SR.GetString(SR.ColorNotSystemColor, c.ToString())); } Pen[] systemPens = (Pen[])SafeNativeMethods.Gdip.ThreadData[SystemPensKey]; if (systemPens == null) { systemPens = new Pen[(int)KnownColor.WindowText + (int)KnownColor.MenuHighlight - (int)KnownColor.YellowGreen]; SafeNativeMethods.Gdip.ThreadData[SystemPensKey] = systemPens; } int idx = (int)c.ToKnownColor(); if (idx > (int)KnownColor.YellowGreen) { idx -= (int)KnownColor.YellowGreen - (int)KnownColor.WindowText; } idx--; Debug.Assert(idx >= 0 && idx < systemPens.Length, "System colors have been added but our system color array has not been expanded."); if (systemPens[idx] == null) { systemPens[idx] = new Pen(c, true); } return systemPens[idx]; } } } // 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
- DataServiceHost.cs
- JavaScriptObjectDeserializer.cs
- ObjectStateFormatter.cs
- FixedSOMElement.cs
- DataConnectionHelper.cs
- KeyPressEvent.cs
- FixedSOMContainer.cs
- Rotation3D.cs
- ActivityContext.cs
- StyleHelper.cs
- BitmapDecoder.cs
- DBNull.cs
- FileChangesMonitor.cs
- precedingquery.cs
- ZipIOExtraFieldElement.cs
- AggregationMinMaxHelpers.cs
- FileDetails.cs
- MarginCollapsingState.cs
- PreviewKeyDownEventArgs.cs
- GridEntryCollection.cs
- InstalledFontCollection.cs
- HttpCacheVaryByContentEncodings.cs
- MethodBody.cs
- Math.cs
- DataGridAddNewRow.cs
- ValidationErrorCollection.cs
- ExtendedPropertyInfo.cs
- DesignerTransaction.cs
- WsdlBuildProvider.cs
- TableAdapterManagerGenerator.cs
- DetailsViewUpdateEventArgs.cs
- DateTimeConverter2.cs
- FixedLineResult.cs
- SelectionProviderWrapper.cs
- XPathPatternBuilder.cs
- XmlReader.cs
- __Error.cs
- DataGridPagerStyle.cs
- SiteMapPath.cs
- DefaultAsyncDataDispatcher.cs
- ActiveDocumentEvent.cs
- UnsafeNativeMethods.cs
- ValidatingCollection.cs
- CrossContextChannel.cs
- IteratorDescriptor.cs
- AppLevelCompilationSectionCache.cs
- AttributeEmitter.cs
- ProfileService.cs
- DataGridDetailsPresenter.cs
- FakeModelItemImpl.cs
- CodeParameterDeclarationExpressionCollection.cs
- XmlAttributes.cs
- VectorConverter.cs
- CalendarDay.cs
- Material.cs
- StringSource.cs
- BaseValidator.cs
- EditableTreeList.cs
- SafeBitVector32.cs
- CompModSwitches.cs
- DelimitedListTraceListener.cs
- JpegBitmapDecoder.cs
- ViewStateModeByIdAttribute.cs
- MulticastIPAddressInformationCollection.cs
- _SafeNetHandles.cs
- BrowserDefinitionCollection.cs
- Binding.cs
- DependencyPropertyHelper.cs
- ExpressionBuilderContext.cs
- EmptyArray.cs
- JsonClassDataContract.cs
- PageTheme.cs
- MessageQueueKey.cs
- FreezableDefaultValueFactory.cs
- Vector3DConverter.cs
- MessagePropertyFilter.cs
- DnsEndPoint.cs
- WebPartZone.cs
- XmlSerializerFaultFormatter.cs
- OLEDB_Enum.cs
- CreateUserWizard.cs
- ImageBrush.cs
- ActiveDocumentEvent.cs
- PersistNameAttribute.cs
- PenThreadPool.cs
- CallbackTimeoutsBehavior.cs
- JsonQNameDataContract.cs
- OracleSqlParser.cs
- TagMapInfo.cs
- ValidationResult.cs
- ErrorRuntimeConfig.cs
- HtmlWindowCollection.cs
- SigningCredentials.cs
- ConditionalAttribute.cs
- CompositeFontFamily.cs
- DataGridViewCheckBoxCell.cs
- SdlChannelSink.cs
- DefaultHttpHandler.cs
- CustomAttributeSerializer.cs
- GeneralTransform.cs