Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Classe DrawingBrush

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

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

public sealed class DrawingBrush : TileBrush

Il tipo DrawingBrush espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoDrawingBrush()Inizializza una nuova istanza di DrawingBrush classe. Il pennello risultante non contiene.
Metodo pubblicoDrawingBrush(Drawing)Inizializza una nuova istanza di DrawingBrush classe che contiene specificato Drawing.
In alto

  NomeDescrizione
Proprietà pubblicaAlignmentXOttiene o imposta l'allineamento orizzontale del contenuto in TileBrush tessera di base. (Ereditato da TileBrush)
Proprietà pubblicaAlignmentYOttiene o imposta l'allineamento verticale del contenuto in TileBrush tessera di base. (Ereditato da TileBrush)
Proprietà pubblicaCanFreezeOttiene un valore che indica se l'oggetto può essere reso immodificabile. (Ereditato da Freezable)
Proprietà pubblicaDependencyObjectTypeottiene DependencyObjectType tale esegue il wrapping CLR tipo dell'istanza.  (Ereditato da DependencyObject)
Proprietà pubblicaDispatcher ottiene l'oggetto Dispatcher al quale l'oggetto DispatcherObject è associato. (Ereditato da DispatcherObject)
Proprietà pubblicaDrawingottiene o imposta Drawing che viene descritto il contenuto di questo DrawingBrush.
Proprietà pubblicaHasAnimatedPropertiesottiene un valore che indica se uno o più AnimationClock gli oggetti sono associati a qualsiasi proprietà di dipendenza di questo oggetto. (Ereditato da Animatable)
Proprietà pubblicaIsFrozenottiene un valore che indica se l'oggetto è attualmente modificabile. (Ereditato da Freezable)
Proprietà pubblicaIsSealedOttiene un valore che indica se l'istanza attualmente è sealed (sola lettura). (Ereditato da DependencyObject)
Proprietà pubblicaOpacity Ottiene o imposta il livello di opacità di un oggetto Brush. (Ereditato da Brush)
Proprietà pubblicaRelativeTransformOttiene o imposta la trasformazione applicata al pennello utilizzando le coordinate relative. (Ereditato da Brush)
Proprietà pubblicaStretchOttiene o imposta un valore che indica il modo in cui il contenuto di questo TileBrush estensioni per adattare le sezioni. (Ereditato da TileBrush)
Proprietà pubblicaTileModeOttiene o imposta un valore che specifica come TileBrush riempie l'area che si sta disegnando se la tessera di base è più piccola area di output. (Ereditato da TileBrush)
Proprietà pubblicaTransformOttiene o imposta la trasformazione applicata al pennello. Questa trasformazione viene applicata dopo che l'output del pennello è stato eseguito il mapping e inserito stato. (Ereditato da Brush)
Proprietà pubblicaViewboxOttiene o imposta la posizione e le dimensioni del contenuto in un oggetto TileBrush sezione. (Ereditato da TileBrush)
Proprietà pubblicaViewboxUnitsOttiene o imposta un valore che specifica se Viewbox il valore relativo al riquadro delimitatore di TileBrush contenuto o se il valore è assoluto. (Ereditato da TileBrush)
Proprietà pubblicaViewportOttiene o imposta la posizione e le dimensioni della tessera di base per una classe TileBrush. (Ereditato da TileBrush)
Proprietà pubblicaViewportUnitsOttiene o imposta un oggetto BrushMappingMode enumerazione che specifica se il valore di Viewport, che indica la dimensione e la posizione di TileBrush la tessera di base, è relativo alle dimensioni dell'area di output. (Ereditato da TileBrush)
In alto

  NomeDescrizione
Metodo pubblicoApplyAnimationClock(DependencyProperty, AnimationClock)applica AnimationClock nel parametro specificato DependencyProperty. Se la proprietà è già viene animato, SnapshotAndReplace il comportamento di handoff viene utilizzato. (Ereditato da Animatable)
Metodo pubblicoApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)applica AnimationClock nel parametro specificato DependencyProperty. Se la proprietà è già viene animato, specificato HandoffBehavior viene utilizzato. (Ereditato da Animatable)
Metodo pubblicoBeginAnimation(DependencyProperty, AnimationTimeline)Applicare un'animazione nel parametro specificato DependencyProperty. L'animazione viene avviata quando il frame successivo viene eseguito il rendering. Se la proprietà specificata già viene animato, SnapshotAndReplace il comportamento di handoff viene utilizzato. (Ereditato da Animatable)
Metodo pubblicoBeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)Applicare un'animazione nel parametro specificato DependencyProperty. L'animazione viene avviata quando il frame successivo viene eseguito il rendering. Se la proprietà specificata già viene animato, specificato HandoffBehavior viene utilizzato. (Ereditato da Animatable)
Metodo pubblicoCheckAccessdetermina se il thread chiamante ha accesso a questo DispatcherObject. (Ereditato da DispatcherObject)
Metodo pubblicoClearValue(DependencyProperty)cancella il valore locale di una proprietà. La proprietà da cancellare viene specificata da un oggetto DependencyProperty identificatore. (Ereditato da DependencyObject)
Metodo pubblicoClearValue(DependencyPropertyKey)Cancella il valore locale di una proprietà di sola lettura. La proprietà da cancellare viene specificata da un oggetto DependencyPropertyKey. (Ereditato da DependencyObject)
Metodo pubblicoCloneViene creato un duplicato modificabile di l DrawingBrush, apportando le copie complete dei valori di questo oggetto. Quando copiare le proprietà di dipendenza, questo metodo consente di copiare i riferimenti alle risorse e le associazioni dati (ma non può più la risoluzione) ma non le animazioni o i relativi valori correnti.
Metodo pubblicoCloneCurrentValueViene creato un duplicato modificabile di l DrawingBrush oggetto, apportando le copie complete dei valori correnti dell'oggetto. I riferimenti alle risorse, associazioni dati e le animazioni non vengono copiate, ma i valori correnti sono.
Metodo pubblicoCoerceValueAssegna il valore del specificato proprietà di dipendenza. Questa operazione viene eseguita utilizzando qualsiasi CoerceValueCallback funzione specificata nei metadati della proprietà per la proprietà di dipendenza come esiste nel chiamare DependencyObject. (Ereditato da DependencyObject)
Metodo pubblicoEqualsdetermina se fornito DependencyObject equivale a corrente DependencyObject. (Ereditato da DependencyObject)
Metodo pubblicoFreeze()Rende l'oggetto corrente immodificabile e imposta il proprio IsFrozen proprietà di true. (Ereditato da Freezable)
Metodo pubblicoGetAnimationBaseValueRestituisce il valore non a specificato DependencyProperty. (Ereditato da Animatable)
Metodo pubblicoGetAsFrozenCrea una copia di bloccata Freezable, utilizzando i valori della proprietà (non animati) di base. Poiché la copia è bloccata, tutti gli oggetti subordinati bloccati vengono copiati per riferimento. (Ereditato da Freezable)
Metodo pubblicoGetCurrentValueAsFrozenCrea una copia di bloccata Freezable utilizzo dei valori delle proprietà correnti. Poiché la copia è bloccata, tutti gli oggetti subordinati bloccati vengono copiati per riferimento. (Ereditato da Freezable)
Metodo pubblicoGetHashCodeOttiene un oggetto codice hash per questo DependencyObject. (Ereditato da DependencyObject)
Metodo pubblicoGetLocalValueEnumeratorCrea un enumeratore specializzato per determinare quali proprietà di dipendenza in locale è impostato stima su questa DependencyObject. (Ereditato da DependencyObject)
Metodo pubblicoGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblicoGetValueRestituisce il valore effettivo corrente di un oggetto proprietà di dipendenza in questa istanza di un oggetto DependencyObject. (Ereditato da DependencyObject)
Metodo pubblicoInvalidatePropertyRivaluta il valore effettivo per la proprietà di dipendenza (Ereditato da DependencyObject)
Metodo pubblicoReadLocalValueRestituisce il valore locale di un oggetto proprietà di dipendenza, se esiste. (Ereditato da DependencyObject)
Metodo pubblicoSetCurrentValueImposta il valore di un oggetto proprietà di dipendenza senza modificarne il codice sorgente di valore. (Ereditato da DependencyObject)
Metodo pubblicoSetValue(DependencyProperty, Object)Imposta il valore locale di un oggetto proprietà di dipendenza, specificato dal relativo identificatore di proprietà di dipendenza. (Ereditato da DependencyObject)
Metodo pubblicoSetValue(DependencyPropertyKey, Object)Imposta il valore locale di un oggetto di sola lettura proprietà di dipendenza, specificato da DependencyPropertyKey identificatore della proprietà di dipendenza. (Ereditato da DependencyObject)
Metodo protettoShouldSerializePropertyRestituisce un valore che indica se i processi di serializzazione deve serializzare il valore fornito per proprietà di dipendenza. (Ereditato da DependencyObject)
Metodo pubblicoToString() Rappresentazione di stringa del valore di questo Brush. (Ereditato da Brush)
Metodo pubblicoToString(IFormatProvider) Crea una rappresentazione di stringa dell'oggetto in base alle informazioni specifiche delle impostazioni cultura specificate di formattazione. (Ereditato da Brush)
Metodo pubblicoVerifyAccess Impone che il thread chiamante abbia accesso a questo DispatcherObject. (Ereditato da DispatcherObject)
In alto

  NomeDescrizione
Evento pubblicoChangedsi verifica quando Freezable o un oggetto contenente viene modificato. (Ereditato da Freezable)
In alto

  NomeDescrizione
Campo pubblicoMembro staticoDrawingPropertyidentifica Drawing proprietà di dipendenza.
In alto

  NomeDescrizione
Implementazione esplicita dell'interfacciaMetodo privatoIFormattable.ToStringFormatta il valore dell'istanza corrente utilizzando il formato specificato. (Ereditato da Brush)
In alto

Nella figura seguente sono illustrate le forme e testo che sono stati disegnati con un oggetto DrawingBrush.

Forme e testo disegnati con un oggetto drawing

Esempi di output di DrawingBrush

Per ulteriori informazioni ed esempi, vedere Disegnare con oggetti Image, Drawing e Visual.

In questo esempio viene illustrato come inserire un disegno in un'area. Per inserire un disegno in un'area, si utilizza un oggetto DrawingBrush e uno o più oggetti Drawing. Nell'esempio seguente viene utilizzato un oggetto DrawingBrush per inserire il disegno di due ellissi.


<!-- 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>




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




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;

        }
    }
}


Nell'immagine seguente viene illustrato l'output dell'esempio:

Output di DrawingBrush

Il centro della forma è bianco per le ragioni descritte in Procedura: controllare il riempimento di una forma composta.

Se si impostano le proprietà Viewport e TileMode di un oggetto DrawingBrush, è possibile creare un motivo ripetitivo. Nell'esempio seguente viene disegnato un oggetto con un motivo creato disegnando due ellissi.


<!-- 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>




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




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;

        }

    }
}


Nell'immagine seguente viene mostrato l'output dell'oggetto DrawingBrush affiancato.

Output affiancato di DrawingBrush

Per ulteriori informazioni sui pennelli per il disegno, vedere Disegnare con oggetti Image, Drawing e Visual. Per ulteriori informazioni sugli oggetti Drawing, vedere Cenni preliminari sugli oggetti Drawing.

.NET Framework

Supportato in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

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

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

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft