Questo argomento non è stato ancora valutato - Valuta questo argomento

Classe RadialGradientBrush

Aggiornamento: novembre 2007

Disegna un'area con una sfumatura radiale. Un punto focale definisce l'inizio della sfumatura e un cerchio ne definisce il punto finale.

Spazio dei nomi:  System.Windows.Media
Assembly:  PresentationCore (in PresentationCore.dll)
XMLNS per XAML: http://schemas.microsoft.com/winfx/xaml/presentation

public sealed class RadialGradientBrush : GradientBrush
public final class RadialGradientBrush extends GradientBrush
public final class RadialGradientBrush extends GradientBrush
<RadialGradientBrush>
  GradientStops
</RadialGradientBrush>

L'oggetto RadialGradientBrush, come modello di programmazione, è simile a LinearGradientBrush. Tuttavia, mentre la sfumatura lineare ha un inizio e un punto finale per definire il vettore sfumato, la sfumatura radiale presenta un cerchio, insieme a un punto focale, che definiscono il comportamento della sfumatura. Il cerchio definisce il punto finale della sfumatura. In altri termini, un cursore sfumatura a 1,0 definisce il colore alla circonferenza del cerchio. Il punto focale definisce il centro della sfumatura. Un cursore sfumatura a 0,0 definisce il colore al punto focale.

Nell'immagine seguente è mostrato un rettangolo riempito con una sfumatura radiale. La sfumatura radiale va da bianco a grigio. Il cerchio esterno rappresenta il cerchio sfumato mentre il punto rosso indica il punto focale. La proprietà SpreadMethod di questa sfumatura è impostata su Pad.

Sfumatura radiale con un punto focale evidenziato

Sfumatura radiale con componenti evidenziati
Nota:

Il rendering per gli oggetti RadialGradientBrush viene eseguito utilizzando accelerazione hardware su sistemi di Tier 2. Per ulteriori informazioni sui livelli hardware, vedere Livelli di rendering della grafica.

Funzionalità dell'oggetto Freezable

Poiché la classe RadialGradientBrush eredita dalla classe Freezable è in grado di fornire diverse funzionalità speciali: gli oggetti RadialGradientBrush possono essere dichiarati come risorse, condivisi da più oggetti, impostati in sola lettura per ottimizzane le prestazioni, duplicati nonché resi thread-safe. Per ulteriori informazioni sulle diverse funzionalità disponibili per gli oggetti Freezable, vedere Cenni preliminari sugli oggetti Freezable.

In questo esempio viene illustrato l'utilizzo della classe RadialGradientBrush per disegnare un'area con una sfumatura radiale.

Nell'esempio seguente viene utilizzato un oggetto RadialGradientBrush per disegnare un rettangolo con una sfumatura radiale che passa dal giallo al rosso al blu al verde limone.


using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace BrushesIntroduction
{
    public class RadialGradientBrushSnippet : Page
    {
        public RadialGradientBrushSnippet()
        {
            Title = "RadialGradientBrush Example";
            Background = Brushes.White;
            Margin = new Thickness(20);

            //
            // Create a RadialGradientBrush with four gradient stops.
            //
            RadialGradientBrush radialGradient = 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.
            radialGradient.Freeze();

            // Create a rectangle and paint it with the 
            // RadialGradientBrush.
            Rectangle aRectangle = new Rectangle();
            aRectangle.Width = 200;
            aRectangle.Height = 100;
            aRectangle.Fill = radialGradient;

            StackPanel mainPanel = new StackPanel();
            mainPanel.Children.Add(aRectangle);
            Content = mainPanel;

        }

    }
}




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

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


Nell'immagine seguente viene mostrata la sfumatura creata nell'esempio precedente. I cursori sfumatura sono stati evidenziati.

Cursori sfumatura in una sfumatura radiale
Nota:

Negli esempi di questo argomento viene utilizzato il sistema di coordinate predefinito per impostare i punti di controllo. Il sistema di coordinate predefinito è relativo a un riquadro delimitatore del testo, dove 0 e 1 indicano rispettivamente lo 0% e il 100% del riquadro delimitatore del testo. Tale sistema di coordinate può essere modificato impostando la proprietà MappingMode sul valore Absolute. Un sistema di coordinate assoluto non è relativo a un riquadro delimitatore. I valori vengono interpretati direttamente nello spazio locale.

Per ulteriori esempi di RadialGradientBrush, vedere Esempio Brush. Per ulteriori informazioni sulle sfumature e su altri tipi di pennelli, vedere Cenni sul disegno con colori a tinta unita e sfumature.

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Windows Vista

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

.NET Framework

Supportato in: 3.5, 3.0
Il documento è risultato utile?
(1500 caratteri rimanenti)

Aggiunte alla community

AGGIUNGI
© 2013 Microsoft. Tutti i diritti riservati.