Classe DrawingBrush (System.Windows.Media)

Cambia visualizzazione:
ScriptFree
Riferimento a .NET Framework
Classe DrawingBrush
Il presente articolo è stato tradotto manualmente. Per visualizzare questa pagina e contemporaneamente visualizzarne il contenuto in lingua inglese, passare alla visualizzazione semplificata.

Disegna un'area con un oggetto Drawing che può includere forme, testo, video, immagini o altri disegni.

Gerarchia di ereditarietà

System.Object
  System.Windows.Threading.DispatcherObject
    System.Windows.DependencyObject
      System.Windows.Freezable
        System.Windows.Media.Animation.Animatable
          System.Windows.Media.Brush
            System.Windows.Media.TileBrush
              System.Windows.Media.DrawingBrush

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

Visual Basic
Public NotInheritable Class DrawingBrush _
	Inherits TileBrush
C#
public sealed class DrawingBrush : TileBrush
Visual C++
public ref class DrawingBrush sealed : public TileBrush
F#
[<Sealed>]
type DrawingBrush =  
    class
        inherit TileBrush
    end
Utilizzo della sintassi XAML per elementi oggetto
<DrawingBrush .../>

Il tipo DrawingBrush espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo pubblico DrawingBrush() Inizializza una nuova istanza della classe DrawingBrush. Il pennello risultante è privo di contenuto.
Metodo pubblico DrawingBrush(Drawing) Inizializza una nuova istanza della classe DrawingBrush contenente l'oggetto Drawing specificato.
In alto
Proprietà

  Nome Descrizione
Proprietà pubblica AlignmentX Ottiene o imposta l'allineamento orizzontale del contenuto nella tessera di base della classe TileBrush. (Ereditato da TileBrush)
Proprietà pubblica AlignmentY Ottiene o imposta l'allineamento verticale del contenuto nella tessera di base della classe TileBrush. (Ereditato da TileBrush)
Proprietà pubblica CanFreeze Ottiene un valore che indica se è possibile rendere immodificabile l’oggetto. (Ereditato da Freezable)
Proprietà pubblica DependencyObjectType Ottiene la classe DependencyObjectType che include il tipo CLR di questa istanza.  (Ereditato da DependencyObject)
Proprietà pubblica Dispatcher Ottiene l'oggetto Dispatcher associato a DispatcherObject. (Ereditato da DispatcherObject)
Proprietà pubblica Drawing Ottiene o imposta l'oggetto Drawing che descrive il contenuto dell'oggetto DrawingBrush corrente.
Proprietà pubblica HasAnimatedProperties Ottiene un valore che indica se uno o più oggetti AnimationClock sono associati a una qualsiasi delle proprietà di dipendenza di questo oggetto. (Ereditato da Animatable)
Proprietà pubblica IsFrozen Ottiene un valore che indica se l’oggetto è attualmente immodificabile. (Ereditato da Freezable)
Proprietà pubblica IsSealed Ottiene un valore che indica se l'istanza è attualmente sealed (di sola lettura). (Ereditato da DependencyObject)
Proprietà pubblica Opacity Ottiene o imposta il livello di opacità di un oggetto Brush. (Ereditato da Brush)
Proprietà pubblica RelativeTransform Ottiene o imposta la trasformazione applicata al pennello utilizzando coordinate relative. (Ereditato da Brush)
Proprietà pubblica Stretch Ottiene o imposta un valore che specifica il modo in cui il contenuto di questa classe TileBrush viene esteso per far sì che si adatti alle relative tessere. (Ereditato da TileBrush)
Proprietà pubblica TileMode Ottiene o imposta un valore che specifica il modo in cui una classe TileBrush riempie l'area disegnata se la tessera di base presenta dimensioni inferiori rispetto all'area di output. (Ereditato da TileBrush)
Proprietà pubblica Transform Ottiene o imposta la trasformazione applicata al pennello. La trasformazione viene applicata dopo che l'output del pennello è stato mappato e posizionato. (Ereditato da Brush)
Proprietà pubblica Viewbox Ottiene o imposta la posizione e le dimensioni del contenuto in una tessera della classe TileBrush. (Ereditato da TileBrush)
Proprietà pubblica ViewboxUnits Ottiene o imposta un valore che specifica se il valore Viewbox è relativo al riquadro delimitatore del testo del contenuto della classe TileBrush oppure si tratta di un valore è assoluto. (Ereditato da TileBrush)
Proprietà pubblica Viewport Ottiene o imposta la posizione e le dimensioni di una tessera di base per una classe TileBrush. (Ereditato da TileBrush)
Proprietà pubblica ViewportUnits Ottiene o imposta un'enumerazione BrushMappingMode che specifica se il valore della proprietà Viewport indicante le dimensioni e la posizione della tessera di base della classe TileBrush è relativo o meno alle dimensioni dell'area di output. (Ereditato da TileBrush)
In alto
Metodi

  Nome Descrizione
Metodo pubblico ApplyAnimationClock(DependencyProperty, AnimationClock) Applica un oggetto AnimationClock all'oggetto DependencyProperty specificato. Se alla proprietà è già stata aggiunta un'animazione, viene utilizzato il comportamento uniforme dell'oggetto SnapshotAndReplace. (Ereditato da Animatable)
Metodo pubblico ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) Applica un oggetto AnimationClock all'oggetto DependencyProperty specificato. Se alla proprietà è già stata aggiunta un'animazione, viene utilizzato l'oggetto HandoffBehavior specificato. (Ereditato da Animatable)
Metodo pubblico BeginAnimation(DependencyProperty, AnimationTimeline) Applica un'animazione all'oggetto DependencyProperty specificato. L'animazione viene avviata quando si esegue il rendering del fotogramma successivo. Se alla proprietà specificata è già stata aggiunta un'animazione, viene utilizzato il comportamento uniforme dell'oggetto SnapshotAndReplace. (Ereditato da Animatable)
Metodo pubblico BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) Applica un'animazione all'oggetto DependencyProperty specificato. L'animazione viene avviata quando si esegue il rendering del fotogramma successivo. Se alla proprietà specificata è già stata aggiunta un'animazione, viene utilizzato l'oggetto HandoffBehavior specificato. (Ereditato da Animatable)
Metodo pubblico CheckAccess Determina se il thread chiamante ha accesso a DispatcherObject. (Ereditato da DispatcherObject)
Metodo pubblico ClearValue(DependencyProperty) Cancella il valore locale di una proprietà. La proprietà da cancellare è indicata da un identificatore DependencyProperty. (Ereditato da DependencyObject)
Metodo pubblico ClearValue(DependencyPropertyKey) Cancella il valore locale di una proprietà di sola lettura. La proprietà da cancellare è indicata da un identificatore DependencyPropertyKey. (Ereditato da DependencyObject)
Metodo pubblico Clone Crea un clone modificabile dell'oggetto DrawingBrush, eseguendo copie complete dei valori di tale oggetto. Durante la copia delle proprietà di dipendenza, vengono copiati i riferimenti di risorsa e le associazioni dati (che potrebbero non essere più risolti), ma non le animazioni o i relativi valori correnti.
Metodo protetto CloneCore Si prenda ad esempio un clone (copia completa) di Freezable specificato utilizzando valori della proprietà di base (non-animati). (Ereditato da Freezable)
Metodo pubblico CloneCurrentValue Crea un clone modificabile dell'oggetto DrawingBrush, eseguendo copie complete dei valori correnti di tale oggetto. I riferimenti di risorsa, le associazioni dati e le animazioni non vengono copiati, mentre vengono copiati i relativi valori correnti.
Metodo protetto CloneCurrentValueCore Rende l’istanza una copia modificabile (copia completa) dell'oggetto Freezable specificato utilizzando i valori della proprietà correnti. (Ereditato da Freezable)
Metodo pubblico CoerceValue Assegna il valore della proprietà di dipendenza specificata. Questa operazione viene eseguita richiamando qualsiasi funzione CoerceValueCallback specificata nei metadati della proprietà di dipendenza, esistente nell'oggetto DependencyObject chiamante. (Ereditato da DependencyObject)
Metodo protetto CreateInstance Inizializza una nuova istanza della classe Freezable. (Ereditato da Freezable)
Metodo protetto CreateInstanceCore Quando è implementato in una classe derivata, crea una nuova istanza della classe derivata Freezable. (Ereditato da Freezable)
Metodo pubblico Equals Determina se l'oggetto DependencyObject specificato equivale all'oggetto DependencyObject corrente. (Ereditato da DependencyObject)
Metodo protetto Finalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblico Freeze() Rende immodificabile l'oggetto corrente e imposta la proprietà IsFrozen su true. (Ereditato da Freezable)
Metodo protetto FreezeCore Rende immodificabile questo oggetto Animatable o determina se l'oggetto può essere reso immodificabile. (Ereditato da Animatable)
Metodo pubblico GetAnimationBaseValue Restituisce il valore non animato dell'oggetto DependencyProperty specificato. (Ereditato da Animatable)
Metodo pubblico GetAsFrozen Crea una copia bloccata di Freezable, utilizzando valori delle proprietà di base (non-animati). Dato che la copia è bloccata, gli oggetti secondari bloccati sono copiati dal riferimento. (Ereditato da Freezable)
Metodo protetto GetAsFrozenCore Si prenda ad esempio una copia bloccata di Freezable specificato utilizzando valori della proprietà di base (non-animati). (Ereditato da Freezable)
Metodo protetto GetContentBounds Ottiene i limiti correnti del contenuto della classe TileBrush (Ereditato da TileBrush)
Metodo pubblico GetCurrentValueAsFrozen Crea una copia bloccata di Freezable utilizzando valori della proprietà correnti. Dato che la copia è bloccata, gli oggetti secondari bloccati sono copiati dal riferimento. (Ereditato da Freezable)
Metodo protetto GetCurrentValueAsFrozenCore Rende l’istanza corrente una copia bloccata di Freezablespecificato. Se l'oggetto dispone di proprietà di dipendenza animate, i valori animati correnti vengono copiati. (Ereditato da Freezable)
Metodo pubblico GetHashCode Ottiene un codice hash per questo oggetto DependencyObject. (Ereditato da DependencyObject)
Metodo pubblico GetLocalValueEnumerator Crea un enumeratore specializzato per determinare le proprietà di dipendenza che presentano valori impostati localmente nell'oggetto DependencyObject. (Ereditato da DependencyObject)
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblico GetValue Restituisce il valore effettivo corrente di una proprietà di dipendenza in questa istanza di DependencyObject. (Ereditato da DependencyObject)
Metodo pubblico InvalidateProperty Valuta di nuovo il valore effettivo della proprietà di dipendenza specificata. (Ereditato da DependencyObject)
Metodo protetto MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo protetto OnChanged Viene chiamato quando l'oggetto Freezable corrente viene modificato. (Ereditato da Freezable)
Metodo protetto OnFreezablePropertyChanged(DependencyObject, DependencyObject) Assicura che adatti puntatori del contesto siano stabiliti per un membro dati DependencyObjectType che è appena stato impostato. (Ereditato da Freezable)
Metodo protetto OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) Questo membro supporta l'infrastruttura Windows Presentation Foundation (WPF) e non può essere utilizzato direttamente dal codice. (Ereditato da Freezable)
Metodo protetto OnPropertyChanged Esegue l'override dell'implementazione DependencyObject di OnPropertyChanged per richiamare anche qualsiasi gestore Changed in risposta a una modifica della proprietà di dipendenza di tipo Freezable. (Ereditato da Freezable)
Metodo pubblico ReadLocalValue Restituisce il valore locale di una proprietà di dipendenza, se esistente. (Ereditato da DependencyObject)
Metodo protetto ReadPreamble Assicura che l’accesso di Freezable sia stato eseguito da un thread valido. Gli eredi di Freezable devono chiamare questo metodo all'inizio di qualsiasi API che legge i membri dei dati che non sono proprietà della dipendenza. (Ereditato da Freezable)
Metodo pubblico SetCurrentValue Imposta il valore di una proprietà di dipendenza senza modificare l'origine del valore. (Ereditato da DependencyObject)
Metodo pubblico SetValue(DependencyProperty, Object) Imposta il valore locale di una proprietà di dipendenza, specificata dal relativo identificatore. (Ereditato da DependencyObject)
Metodo pubblico SetValue(DependencyPropertyKey, Object) Imposta il valore locale di una proprietà di dipendenza di sola lettura, specificata dall'identificatore DependencyPropertyKey della proprietà di dipendenza. (Ereditato da DependencyObject)
Metodo protetto ShouldSerializeProperty Restituisce un valore che indica se i processi di serializzazione devono serializzare il valore della proprietà di dipendenza fornita. (Ereditato da DependencyObject)
Metodo pubblico ToString() Rappresentazione in forma di stringa restituita di Brush. (Ereditato da Brush)
Metodo pubblico ToString(IFormatProvider) Crea una rappresentazione di stringa dell'oggetto in base alle informazioni di formattazione specifiche delle impostazioni cultura specificate. (Ereditato da Brush)
Metodo pubblico VerifyAccess Impone che il thread chiamante abbia accesso a DispatcherObject. (Ereditato da DispatcherObject)
Metodo protetto WritePostscript Genera l'evento Changed per Freezable e richiama il metodo OnChanged. Le classi che derivano da Freezable devono chiamare questo metodo alla fine di qualsiasi API che modifica i membri della classe non archiviati come proprietà di dipendenza. (Ereditato da Freezable)
Metodo protetto WritePreamble Verifica che l'oggetto Freezable non sia bloccato e che l'accesso sia eseguito da un contesto di threading valido. Gli eredi di Freezable devono chiamare questo metodo all'inizio di qualsiasi API che scrive sui membri dei dati che non sono proprietà della dipendenza. (Ereditato da Freezable)
In alto
Eventi

  Nome Descrizione
Evento pubblico Changed Si verifica quando Freezable o un oggetto che contiene è modificato. (Ereditato da Freezable)
In alto
Campi

  Nome Descrizione
Campo pubblico Membro statico DrawingProperty Identifica la proprietà di dipendenza Drawing.
In alto
Implementazioni esplicite dell'interfaccia

  Nome Descrizione
Implementazione esplicita dell'interfaccia Metodo privato IFormattable.ToString Formatta il valore dell'istanza corrente utilizzando il formato specificato. (Ereditato da Brush)
In alto
Note

Di seguito sono illustrati forme e testo disegnati con un oggetto DrawingBrush.

Forme e testo disegnati con un pennello per il disegno

Esempi di output di DrawingBrush

Per ulteriori informazioni ed esempi, vedere Painting with Images, Drawings, and Visuals.

Esempi

This example shows how to paint an area with a drawing. To paint an area with a drawing, you use a DrawingBrush and one or more Drawing objects. The following example uses a DrawingBrush to paint an object with a drawing of two ellipses.

XAML

<!-- Demonstrates the use of DrawingBrush. -->
<Page  
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Background="White">
  <StackPanel Margin="20">

    <Rectangle Width="150" Height="150" Stroke="Black" StrokeThickness="1">
      <Rectangle.Fill>
        <DrawingBrush>
          <DrawingBrush.Drawing>
            <GeometryDrawing Brush="MediumBlue">
              <GeometryDrawing.Geometry>
                <GeometryGroup>
                  <EllipseGeometry RadiusX="20" RadiusY="45" Center="50,50" />
                  <EllipseGeometry RadiusX="45" RadiusY="20" Center="50,50" />
                </GeometryGroup>
              </GeometryDrawing.Geometry>
              <GeometryDrawing.Pen>
                <Pen Thickness="10">
                  <Pen.Brush>
                    <LinearGradientBrush>
                      <GradientStop Offset="0.0" Color="Black" />
                      <GradientStop Offset="1.0" Color="Gray" />
                    </LinearGradientBrush>
                  </Pen.Brush>
                </Pen>
              </GeometryDrawing.Pen>
            </GeometryDrawing>
          </DrawingBrush.Drawing>
        </DrawingBrush>
      </Rectangle.Fill>
    </Rectangle>
  </StackPanel>
</Page>


Visual Basic


Imports System.Windows.Media.Animation


Namespace Microsoft.Samples.DrawingBrushExamples
	''' <summary>
	''' Paints a Rectangle element with a DrawingBrush.
	''' </summary>
	Public Class DrawingBrushExample
		Inherits Page
		Public Sub New()
			Background = Brushes.White
			Dim mainPanel As New StackPanel()

			' Create a drawing of two ellipses.
			Dim aDrawing As New GeometryDrawing()

			' Use geometries to describe two overlapping ellipses.
			Dim ellipse1 As New EllipseGeometry()
			ellipse1.RadiusX = 20
			ellipse1.RadiusY = 45
			ellipse1.Center = New Point(50, 50)
			Dim ellipse2 As New EllipseGeometry()
			ellipse2.RadiusX = 45
			ellipse2.RadiusY = 20
			ellipse2.Center = New Point(50, 50)
			Dim ellipses As New GeometryGroup()
			ellipses.Children.Add(ellipse1)
			ellipses.Children.Add(ellipse2)

			' Add the geometry to the drawing.
			aDrawing.Geometry = ellipses

			' Specify the drawing's fill.
			aDrawing.Brush = Brushes.Blue

			' Specify the drawing's stroke.
			Dim stroke As New Pen()
			stroke.Thickness = 10.0
			stroke.Brush = New LinearGradientBrush(Colors.Black, Colors.Gray, New Point(0, 0), New Point(1, 1))
			aDrawing.Pen = stroke

			' Create a DrawingBrush
			Dim myDrawingBrush As New DrawingBrush()
			myDrawingBrush.Drawing = aDrawing

			' Create a Rectangle element.
			Dim aRectangle As New Rectangle()
			aRectangle.Width = 150
			aRectangle.Height = 150
			aRectangle.Stroke = Brushes.Black
			aRectangle.StrokeThickness = 1.0

			' Use the DrawingBrush to paint the rectangle's
			' background.
			aRectangle.Fill = myDrawingBrush

			mainPanel.Children.Add(aRectangle)

			Me.Content = mainPanel

		End Sub
	End Class
End Namespace


C#


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


namespace Microsoft.Samples.DrawingBrushExamples
{
    /// <summary>
    /// Paints a Rectangle element with a DrawingBrush.
    /// </summary>
    public class DrawingBrushExample : Page
    {
        public DrawingBrushExample()
        {
            Background = Brushes.White;
            StackPanel mainPanel = new StackPanel();

            // Create a drawing of two ellipses.
            GeometryDrawing aDrawing = new GeometryDrawing();

            // Use geometries to describe two overlapping ellipses.
            EllipseGeometry ellipse1 = new EllipseGeometry();
            ellipse1.RadiusX = 20;
            ellipse1.RadiusY = 45;
            ellipse1.Center = new Point(50, 50);
            EllipseGeometry ellipse2 = new EllipseGeometry();
            ellipse2.RadiusX = 45;
            ellipse2.RadiusY = 20;
            ellipse2.Center = new Point(50, 50);
            GeometryGroup ellipses = new GeometryGroup();
            ellipses.Children.Add(ellipse1);
            ellipses.Children.Add(ellipse2);

            // Add the geometry to the drawing.
            aDrawing.Geometry = ellipses;

            // Specify the drawing's fill.
            aDrawing.Brush = Brushes.Blue;

            // Specify the drawing's stroke.
            Pen stroke = new Pen();
            stroke.Thickness = 10.0;
            stroke.Brush = new LinearGradientBrush(
                Colors.Black, Colors.Gray, new Point(0, 0), new Point(1, 1));
            aDrawing.Pen = stroke;

            // Create a DrawingBrush
            DrawingBrush myDrawingBrush = new DrawingBrush();
            myDrawingBrush.Drawing = aDrawing;

            // Create a Rectangle element.
            Rectangle aRectangle = new Rectangle();
            aRectangle.Width = 150;
            aRectangle.Height = 150;
            aRectangle.Stroke = Brushes.Black;
            aRectangle.StrokeThickness = 1.0;

            // Use the DrawingBrush to paint the rectangle's
            // background.
            aRectangle.Fill = myDrawingBrush;

            mainPanel.Children.Add(aRectangle);

            this.Content = mainPanel;

        }
    }
}


The following illustration shows the example's output.

Output di DrawingBrush

(The center of the shape is white for reasons described in How to: Control the Fill of a Composite Shape.)

By setting a DrawingBrush object's Viewport and TileMode properties, you can create a repeating pattern. The following example paints an object with a pattern created from a drawing of two ellipses.

XAML

<!-- Demonstrates the use of DrawingBrush. -->
<Page  
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Background="White">
  <StackPanel Margin="20">

    <Rectangle Width="150" Height="150" Stroke="Black" StrokeThickness="1">
      <Rectangle.Fill>
        <DrawingBrush Viewport="0,0,0.25,0.25" TileMode="Tile">
          <DrawingBrush.Drawing>
            <GeometryDrawing Brush="MediumBlue">
              <GeometryDrawing.Geometry>
                <GeometryGroup>
                  <EllipseGeometry RadiusX="20" RadiusY="45" Center="50,50" />
                  <EllipseGeometry RadiusX="45" RadiusY="20" Center="50,50" />
                </GeometryGroup>
              </GeometryDrawing.Geometry>
              <GeometryDrawing.Pen>
                <Pen Thickness="10">
                  <Pen.Brush>
                    <LinearGradientBrush>
                      <GradientStop Offset="0.0" Color="Black" />
                      <GradientStop Offset="1.0" Color="Gray" />
                    </LinearGradientBrush>
                  </Pen.Brush>
                </Pen>
              </GeometryDrawing.Pen>
            </GeometryDrawing>
          </DrawingBrush.Drawing>
        </DrawingBrush>
      </Rectangle.Fill>
    </Rectangle>
  </StackPanel>
</Page>


Visual Basic


Imports System.Windows.Media.Animation


Namespace Microsoft.Samples.DrawingBrushExamples

	''' <summary>
	''' Paints a Rectangle element with a tiled DrawingBrush.
	''' </summary>
	Public Class TiledDrawingBrushExample
		Inherits Page

		Public Sub New()
			Background = Brushes.White
			Dim mainPanel As New StackPanel()

			' Create a drawing of two ellipses.
			Dim aDrawing As New GeometryDrawing()

			' Use geometries to describe two overlapping ellipses.
			Dim ellipse1 As New EllipseGeometry()
			ellipse1.RadiusX = 20
			ellipse1.RadiusY = 45
			ellipse1.Center = New Point(50, 50)
			Dim ellipse2 As New EllipseGeometry()
			ellipse2.RadiusX = 45
			ellipse2.RadiusY = 20
			ellipse2.Center = New Point(50, 50)
			Dim ellipses As New GeometryGroup()
			ellipses.Children.Add(ellipse1)
			ellipses.Children.Add(ellipse2)

			' Add the geometry to the drawing.
			aDrawing.Geometry = ellipses

			' Specify the drawing's fill.
			aDrawing.Brush = Brushes.Blue

			' Specify the drawing's stroke.
			Dim stroke As New Pen()
			stroke.Thickness = 10.0
			stroke.Brush = New LinearGradientBrush(Colors.Black, Colors.Gray, New Point(0, 0), New Point(1, 1))
			aDrawing.Pen = stroke

			' Create a DrawingBrush
			Dim myDrawingBrush As New DrawingBrush()
			myDrawingBrush.Drawing = aDrawing

			' Set the DrawingBrush's Viewport and TileMode
			' properties so that it generates a pattern.
			myDrawingBrush.Viewport = New Rect(0, 0, 0.25, 0.25)
			myDrawingBrush.TileMode = TileMode.Tile

			' Create a Rectangle element.
			Dim aRectangle As New Rectangle()
			aRectangle.Width = 150
			aRectangle.Height = 150
			aRectangle.Stroke = Brushes.Black
			aRectangle.StrokeThickness = 1.0

			' Use the DrawingBrush to paint the rectangle's
			' background.
			aRectangle.Fill = myDrawingBrush

			mainPanel.Children.Add(aRectangle)

			Me.Content = mainPanel

		End Sub

	End Class
End Namespace


C#


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


namespace Microsoft.Samples.DrawingBrushExamples
{

    /// <summary>
    /// Paints a Rectangle element with a tiled DrawingBrush.
    /// </summary>
    public class TiledDrawingBrushExample : Page
    {

        public TiledDrawingBrushExample()
        {
            Background = Brushes.White;
            StackPanel mainPanel = new StackPanel();

            // Create a drawing of two ellipses.
            GeometryDrawing aDrawing = new GeometryDrawing();

            // Use geometries to describe two overlapping ellipses.
            EllipseGeometry ellipse1 = new EllipseGeometry();
            ellipse1.RadiusX = 20;
            ellipse1.RadiusY = 45;
            ellipse1.Center = new Point(50, 50);
            EllipseGeometry ellipse2 = new EllipseGeometry();
            ellipse2.RadiusX = 45;
            ellipse2.RadiusY = 20;
            ellipse2.Center = new Point(50, 50);
            GeometryGroup ellipses = new GeometryGroup();
            ellipses.Children.Add(ellipse1);
            ellipses.Children.Add(ellipse2);

            // Add the geometry to the drawing.
            aDrawing.Geometry = ellipses;

            // Specify the drawing's fill.
            aDrawing.Brush = Brushes.Blue;

            // Specify the drawing's stroke.
            Pen stroke = new Pen();
            stroke.Thickness = 10.0;
            stroke.Brush = new LinearGradientBrush(
                Colors.Black, Colors.Gray, new Point(0, 0), new Point(1, 1));
            aDrawing.Pen = stroke;

            // Create a DrawingBrush
            DrawingBrush myDrawingBrush = new DrawingBrush();
            myDrawingBrush.Drawing = aDrawing;

            // Set the DrawingBrush's Viewport and TileMode
            // properties so that it generates a pattern.
            myDrawingBrush.Viewport = new Rect(0, 0, 0.25, 0.25);
            myDrawingBrush.TileMode = TileMode.Tile;

            // Create a Rectangle element.
            Rectangle aRectangle = new Rectangle();
            aRectangle.Width = 150;
            aRectangle.Height = 150;
            aRectangle.Stroke = Brushes.Black;
            aRectangle.StrokeThickness = 1.0;

            // Use the DrawingBrush to paint the rectangle's
            // background.
            aRectangle.Fill = myDrawingBrush;

            mainPanel.Children.Add(aRectangle);

            this.Content = mainPanel;

        }

    }
}


The following illustration shows the tiled DrawingBrush output.

Output affiancato di DrawingBrush

For more information about drawing brushes, see Painting with Images, Drawings, and Visuals. For more information about Drawing objects, see the Drawing Objects Overview.

Informazioni sulla versione

.NET Framework

Supportato in: 4, 3.5, 3.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1
Piattaforme

Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Codice thread safe

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

Riferimenti

Altre risorse