Esporta (0) Stampa
Espandi tutto

Classe GradientStop

Aggiornamento: novembre 2007

Descrive il percorso e il colore di un punto di transizione in una sfumatura.

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

[LocalizabilityAttribute(LocalizationCategory.None, Readability = Readability.Unreadable)]
public sealed class GradientStop : Animatable, 
	IFormattable
/** @attribute LocalizabilityAttribute(LocalizationCategory.None, Readability = Readability.Unreadable) */
public final class GradientStop extends Animatable implements IFormattable
public final class GradientStop extends Animatable implements IFormattable

Utilizzare tale classe per descrivere i colori in un oggetto LinearGradientBrush o RadialGradientBrush.

Notare che tale classe non fornisce una proprietà relativa all'opacità; per rendere un oggetto GradientStop, semitrasparente, impostare le proprietà GradientStop.Color con un oggetto Color trasparente.

Funzionalità dell'oggetto Freezable

Un oggetto GradientStop è un oggetto di tipo Freezable e pertanto può essere bloccato per migliorare le prestazioni. Per informazioni sulle funzionalità dell'oggetto Freezable, ad esempio il blocco e la duplicazione, vedere Cenni preliminari sugli oggetti Freezable.

In questo esempio viene illustrato come utilizzare la classe LinearGradientBrush per disegnare un'area con una sfumatura lineare. Nell'esempio riportato di seguito Fill di Rectangle viene disegnato con una sfumatura lineare diagonale che passa dal giallo al rosso al blu al verde limone.

<!-- This rectangle is painted with a diagonal linear gradient. -->
<Rectangle Width="200" Height="100">
  <Rectangle.Fill>
    <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
      <GradientStop Color="Yellow" Offset="0.0" />
      <GradientStop Color="Red" Offset="0.25" />
      <GradientStop Color="Blue" Offset="0.75" />
      <GradientStop Color="LimeGreen" Offset="1.0" />
    </LinearGradientBrush>
  </Rectangle.Fill>
</Rectangle>


Rectangle diagonalFillRectangle = new Rectangle();
diagonalFillRectangle.Width = 200;
diagonalFillRectangle.Height = 100;

// Create a diagonal linear gradient with four stops.   
LinearGradientBrush myLinearGradientBrush =
    new LinearGradientBrush();
myLinearGradientBrush.StartPoint = new Point(0,0);
myLinearGradientBrush.EndPoint = new Point(1,1);
myLinearGradientBrush.GradientStops.Add(
    new GradientStop(Colors.Yellow, 0.0));
myLinearGradientBrush.GradientStops.Add(
    new GradientStop(Colors.Red, 0.25));                
myLinearGradientBrush.GradientStops.Add(
    new GradientStop(Colors.Blue, 0.75));        
myLinearGradientBrush.GradientStops.Add(
    new GradientStop(Colors.LimeGreen, 1.0));

// Use the brush to paint the rectangle.
diagonalFillRectangle.Fill = myLinearGradientBrush;


Nell'immagine riportata di seguito viene illustrata la sfumatura creata nell'esempio precedente.

Sfumatura lineare diagonale

Per creare una sfumatura lineare orizzontale, impostare StartPoint e EndPoint di LinearGradientBrush su (0,0.5) e (1,0.5). Nell'esempio riportato di seguito Rectangle viene disegnato con una sfumatura lineare orizzontale.

<!-- This rectangle is painted with a horizontal linear gradient. -->
<Rectangle Width="200" Height="100">
  <Rectangle.Fill>
    <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
      <GradientStop Color="Yellow" Offset="0.0" />
      <GradientStop Color="Red" Offset="0.25" />
      <GradientStop Color="Blue" Offset="0.75" />
      <GradientStop Color="LimeGreen" Offset="1.0" />
    </LinearGradientBrush>
  </Rectangle.Fill>
</Rectangle>


Rectangle horizontalFillRectangle = new Rectangle();
horizontalFillRectangle.Width = 200;
horizontalFillRectangle.Height = 100;

// Create a horizontal linear gradient with four stops.   
LinearGradientBrush myHorizontalGradient =
    new LinearGradientBrush();
myHorizontalGradient.StartPoint = new Point(0,0.5);
myHorizontalGradient.EndPoint = new Point(1,0.5);
myHorizontalGradient.GradientStops.Add(
    new GradientStop(Colors.Yellow, 0.0));
myHorizontalGradient.GradientStops.Add(
    new GradientStop(Colors.Red, 0.25));                
myHorizontalGradient.GradientStops.Add(
    new GradientStop(Colors.Blue, 0.75));        
myHorizontalGradient.GradientStops.Add(
    new GradientStop(Colors.LimeGreen, 1.0));

// Use the brush to paint the rectangle.
horizontalFillRectangle.Fill = myHorizontalGradient; 



Nella figura riportata di seguito viene illustrata la sfumatura creata nell'esempio precedente.

Sfumatura lineare orizzontale

Per creare una sfumatura lineare verticale, impostare StartPoint e EndPoint di LinearGradientBrush su (0.5,0) e (0.5,1). Nell'esempio riportato di seguito Rectangle viene disegnato con una sfumatura lineare verticale.

<!-- This rectangle is painted with a vertical gradient. -->
<Rectangle Width="200" Height="100">
  <Rectangle.Fill>
    <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
      <GradientStop Color="Yellow" Offset="0.0" />
      <GradientStop Color="Red" Offset="0.25" />
      <GradientStop Color="Blue" Offset="0.75" />
      <GradientStop Color="LimeGreen" Offset="1.0" />
    </LinearGradientBrush>
  </Rectangle.Fill>
</Rectangle>


Rectangle verticalFillRectangle = new Rectangle();
verticalFillRectangle.Width = 200;
verticalFillRectangle.Height = 100;

// Create a vertical linear gradient with four stops.   
LinearGradientBrush myVerticalGradient =
    new LinearGradientBrush();
myVerticalGradient.StartPoint = new Point(0.5,0);
myVerticalGradient.EndPoint = new Point(0.5,1);
myVerticalGradient.GradientStops.Add(
    new GradientStop(Colors.Yellow, 0.0));
myVerticalGradient.GradientStops.Add(
    new GradientStop(Colors.Red, 0.25));                
myVerticalGradient.GradientStops.Add(
    new GradientStop(Colors.Blue, 0.75));        
myVerticalGradient.GradientStops.Add(
    new GradientStop(Colors.LimeGreen, 1.0));

// Use the brush to paint the rectangle.
verticalFillRectangle.Fill = myVerticalGradient;  


Nell'immagine riportata di seguito viene illustrata la sfumatura creata nell'esempio precedente.

Sfumatura lineare verticale
Nota:

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

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

Altro codice

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

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

Aggiunte alla community

AGGIUNGI
Mostra:
© 2015 Microsoft