How to: Paint an Area with a Radial Gradient


This example shows how to use the RadialGradientBrush class to paint an area with a radial gradient.

The following example uses a RadialGradientBrush to paint a rectangle with a radial gradient that transitions from yellow to red to blue to lime green.

Imports Microsoft.VisualBasic
Imports System
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Input
Imports System.Windows.Media
Imports System.Windows.Media.Animation
Imports System.Windows.Shapes

Namespace BrushesIntroduction
	Public Class RadialGradientBrushSnippet
		Inherits Page
		Public Sub New()
			Title = "RadialGradientBrush Example"
			Background = Brushes.White
			Margin = New Thickness(20)

			' Create a RadialGradientBrush with four gradient stops.
			Dim radialGradient As New RadialGradientBrush()

			' Set the GradientOrigin to the center of the area being painted.
			radialGradient.GradientOrigin = New Point(0.5, 0.5)

			' Set the gradient center to the center of the area being painted.
			radialGradient.Center = New Point(0.5, 0.5)

			' Set the radius of the gradient circle so that it extends to
			' the edges of the area being painted.
			radialGradient.RadiusX = 0.5
			radialGradient.RadiusY = 0.5

			' Create four gradient stops.
			radialGradient.GradientStops.Add(New GradientStop(Colors.Yellow, 0.0))
			radialGradient.GradientStops.Add(New GradientStop(Colors.Red, 0.25))
			radialGradient.GradientStops.Add(New GradientStop(Colors.Blue, 0.75))
			radialGradient.GradientStops.Add(New GradientStop(Colors.LimeGreen, 1.0))

			' Freeze the brush (make it unmodifiable) for performance benefits.

			' Create a rectangle and paint it with the 
			' RadialGradientBrush.
			Dim aRectangle As New Rectangle()
			aRectangle.Width = 200
			aRectangle.Height = 100
			aRectangle.Fill = radialGradient

			Dim mainPanel As New StackPanel()
			Content = mainPanel

		End Sub

	End Class
End Namespace

  Title="RadialGradientBrush Example"
  Background="White" Margin="20">

    <!-- This rectangle is painted with a radial gradient. -->
    <Rectangle Width="200" Height="100">
          Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5">
            <GradientStop Color="Yellow" Offset="0" />
            <GradientStop Color="Red" Offset="0.25" />
            <GradientStop Color="Blue" Offset="0.75" />
            <GradientStop Color="LimeGreen" Offset="1" />

The following illustration shows the gradient from the preceding example. The gradient's stops have been highlighted.

Gradient stops in a radial gradient

System_CAPS_ICON_note.jpg Note

The examples in this topic use the default coordinate system for setting control points. The default coordinate system is relative to a bounding box: 0 indicates 0 percent of the bounding box, and 1 indicates 100 percent of the bounding box. You can change this coordinate system by setting the MappingMode property to the value Absolute. An absolute coordinate system is not relative to a bounding box. Values are interpreted directly in local space.

For additional RadialGradientBrush examples, see the Brushes Sample. For more information about gradients and other types of brushes, see Painting with Solid Colors and Gradients Overview.