This topic has not yet been rated - Rate this topic

Color Structure

[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]

Describes a color in terms of alpha, red, green, and blue channels.

Namespace:  System.Windows.Media
Assembly:  PresentationCore (in PresentationCore.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[LocalizabilityAttribute(LocalizationCategory.None, Readability = Readability.Unreadable)]
[TypeConverterAttribute(typeof(ColorConverter))]
public struct Color : IFormattable, IEquatable<Color>
<object property="predefinedColor"/>
- or -
<object property="#rgb"/>
- or -
<object property="#argb"/>
- or -
<object property="#rrggbb"/>
- or -
<object property="#aarrggbb"/>
- or -
<object property="sc# scA,scR,scG,scB"/>
- or -
<object property="ContextColor profileUri alphaValue,colorValue"/>

XAML Values

predefinedColor

One of the colors predefined by the Colors class.

rgb

A three-digit hexadecimal number. The first digit specifies the color's R value, the second digit specifies the G value, and the third digit specifies the B value. For example, 00F.

argb

A four-digit hexadecimal number. The first digit specifies the color's A value, the second digit specifies its R value, the next digit specifies the G value, and the final digit specifies its B value. For example, F00F.

rrggbb

A six-digit hexadecimal number. The first two digits specify the color's R value, the next two specify its G value, and the final two specify its B value. For example, 0000FF.

aarrggbb

An eight-digit hexadecimal number. The first two digits specify the color's A value, the next two specify its R value, the next two specify its G value, and the final two specify its B value. For example, FF0000FF.

scA

System.Single

The color's ScA value.

scR

System.Single

The color's ScR value.

scG

System.Single

The color's ScG value.

scB

System.Single

The color's ScB value.

profileUri

System.Uri

The International Color Consortium (ICC) or Image Color Management (ICM) color profile.

alphaValue

System.Single

The alpha channel color value. The value range is 0.0 to 1.0.

colorValue

System.Single

A comma-delimited list of three to eight values that represent the color channels of the color profile. The value range is 0.0 to 1.0.

The Color type exposes the following members.

  Name Description
Public property A Gets or sets the sRGB alpha channel value of the color.
Public property B Gets or sets the sRGB blue channel value of the color.
Public property ColorContext Gets the International Color Consortium (ICC) or Image Color Management (ICM) color profile of the color.
Public property G Gets or sets the sRGB green channel value of the color.
Public property R Gets or sets the sRGB red channel value of the color.
Public property ScA Gets or sets the ScRGB alpha channel value of the color.
Public property ScB Gets or sets the ScRGB blue channel value of the color.
Public property ScG Gets or sets the ScRGB green channel value of the color.
Public property ScR Gets or sets the ScRGB red channel value of the color.
Top
  Name Description
Public method Static member Add Adds two Color structures.
Public method Static member AreClose Compares two Color structures for fuzzy equality.
Public method Clamp Sets the ScRGB channels of the color to within the gamut of 0 to 1, if they are outside that range.
Public method Equals(Color) Tests whether the specified Color structure is identical to the current color.
Public method Equals(Object) Tests whether the specified object is a Color structure and is equivalent to the current color. (Overrides ValueType.Equals(Object).)
Public method Static member Equals(Color, Color) Tests whether two Color structures are identical.
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method Static member FromArgb Creates a new Color structure by using the specified sRGB alpha channel and color channel values.
Public method Static member FromAValues Creates a new Color structure by using the specified alpha channel, color channel values, and color profile.
Public method Static member FromRgb Creates a new Color structure by using the specified sRGB color channel values.
Public method Static member FromScRgb Creates a new Color structure by using the specified ScRGB alpha channel and color channel values.
Public method Static member FromValues Creates a new Color structure by using the specified color channel values and color profile.
Public method GetHashCode Gets a hash code for the current Color structure. (Overrides ValueType.GetHashCode().)
Public method GetNativeColorValues Gets the color channel values of the color.
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method Static member Multiply Multiplies the alpha, red, blue, and green channels of the specified Color structure by the specified value.
Public method Static member Subtract Subtracts a Color structure from a Color structure.
Public method ToString() Creates a string representation of the color using the ScRGB channels. (Overrides ValueType.ToString().)
Public method ToString(IFormatProvider) Creates a string representation of the color by using the ScRGB channels and the specified format provider.
Top
  Name Description
Public operator Static member Addition Adds two Color structures.
Public operator Static member Equality Tests whether two Color structures are identical.
Public operator Static member Inequality Tests whether two Color structures are not identical.
Public operator Static member Multiply Multiplies the alpha, red, blue, and green channels of the specified Color structure by the specified value.
Public operator Static member Subtraction Subtracts a Color structure from a Color structure.
Top
  Name Description
Explicit interface implemetation Private method IFormattable.ToString Formats the value of the current instance using the specified format.
Top

This example shows how to use sRGB, ScRGB, and color profile values to create the color blue.


<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<StackPanel Margin="20">

  <!-- This rectangle fill uses a Color with ScRGB values to
       create a completely opaque blue. -->
  <Rectangle Width="50" Height="50"  Margin="10">
     <Rectangle.Fill>
       <SolidColorBrush>
         <SolidColorBrush.Color>

           <!-- Describes the brush's color using
                ScRGB values. Each value has a range of 0-1.  -->
           <Color ScA="1.0" ScR="0.0" ScG="0.0" ScB="1.0" />
        </SolidColorBrush.Color>
      </SolidColorBrush>
    </Rectangle.Fill>
  </Rectangle>

  <!-- This rectangle fill uses a Color with sRGB values to
       create a completely opaque blue. -->
  <Rectangle Width="50" Height="50"  Margin="10">
     <Rectangle.Fill>
       <SolidColorBrush>
         <SolidColorBrush.Color>

           <!-- Describes the brush's color using
                sRGB values. Each value is a byte with range of 0-255.  -->
           <Color A="255" R="0" G="0" B="255" />
        </SolidColorBrush.Color>
      </SolidColorBrush>
    </Rectangle.Fill>
  </Rectangle>

  <!-- This rectangle fill uses the sRGB color profile and values to
       create a complete opaque blue. -->
  <Rectangle Width="50" Height="50"  Margin="10">
    <Rectangle.Fill>
      <SolidColorBrush Color="ContextColor 
	   file://C:/WINDOWS/system32/spool/drivers/color/sRGB%20Color%20Space%20Profile.icm
	   1.0,0.0,0.0,1.0"/>
    </Rectangle.Fill>
  </Rectangle>

</StackPanel>
</Page>


.NET Framework

Supported in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8 Release Preview, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 SP2, Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)