Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original
Este tópico ainda não foi avaliado como - Avalie este tópico

Classe DrawingBrush

Pinta uma área com uma Drawing, que pode incluir formas, texto, imagens, vídeo ou outros desenhos.

Namespace:  System.Windows.Media
Assembly:  PresentationCore (em PresentationCore.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
public sealed class DrawingBrush : TileBrush
<DrawingBrush .../>

O tipo DrawingBrush expõe os membros a seguir.

  NomeDescrição
Método públicoDrawingBrush()Inicializa uma nova instância da classe DrawingBrush. O pincel resultante não tem conteúdo.
Método públicoDrawingBrush(Drawing)Inicializa uma nova instância da DrawingBrush classe que contém o especificado Drawing.
Superior
  NomeDescrição
Propriedade públicaAlignmentXObtém ou define o alinhamento horizontal do conteúdo do TileBrush base lado a lado. (Herdado de TileBrush.)
Propriedade públicaAlignmentYObtém ou define o alinhamento vertical do conteúdo do TileBrush base lado a lado. (Herdado de TileBrush.)
Propriedade públicaCanFreeze Obtém um valor que indica se o objeto pode ser feito inalterável. (Herdado de Freezable.)
Propriedade públicaDependencyObjectType Obtém o DependencyObjectType que envolve o tipo de instância da CLR. (Herdado de DependencyObject.)
Propriedade públicaDispatcherObtém o Dispatcher esse DispatcherObject está associado. (Herdado de DispatcherObject.)
Propriedade públicaDrawingObtém ou define o Drawing que descreve o conteúdo desse DrawingBrush.
Propriedade públicaHasAnimatedPropertiesObtém um valor que indica se um ou mais AnimationClock objetos está associado a qualquer uma das propriedades de dependência do objeto. (Herdado de Animatable.)
Propriedade públicaIsFrozenObtém um valor que indica se o objeto é atualmente pode ser modificado. (Herdado de Freezable.)
Propriedade públicaIsSealed Obtém um valor que indica se essa instância atualmente é selada (somente leitura). (Herdado de DependencyObject.)
Propriedade públicaOpacity Obtém ou define o grau de opacidade de um Brush. (Herdado de Brush.)
Propriedade públicaRelativeTransformObtém ou define a transformação que é aplicada para o pincel usando coordenadas relativas. (Herdado de Brush.)
Propriedade públicaStretchObtém ou define um valor que especifica como o conteúdo deste TileBrush stretches para caber seu lado a lado. (Herdado de TileBrush.)
Propriedade públicaTileModeObtém ou define um valor que especifica como um TileBrush preenche a área que você estiver pintando se a imagem base for menor que a área de saída. (Herdado de TileBrush.)
Propriedade públicaTransformObtém ou define a transformação que é aplicada para o pincel. Essa transformação é aplicada após a saída do pincel foi mapeada e posicionada. (Herdado de Brush.)
Propriedade públicaViewboxObtém ou define a posição e as dimensões do conteúdo em um TileBrush lado a lado. (Herdado de TileBrush.)
Propriedade públicaViewboxUnitsObtém ou define um valor que especifica se o Viewbox valor é em relação à caixa delimitadora da TileBrush conteúdo ou se o valor é absoluto. (Herdado de TileBrush.)
Propriedade públicaViewportObtém ou define a posição e as dimensões da peça base para um TileBrush. (Herdado de TileBrush.)
Propriedade públicaViewportUnitsObtém ou define um BrushMappingMode enumeração que especifica se o valor da Viewport, que indica o tamanho e posição da TileBrush base lado a lado, é relativa ao tamanho da área de saída. (Herdado de TileBrush.)
Superior
  NomeDescrição
Método públicoApplyAnimationClock(DependencyProperty, AnimationClock)Aplica-se um AnimationClock para o DependencyProperty. Se a propriedade já é animada, o comportamento de entrega da SnapshotAndReplace é usado. (Herdado de Animatable.)
Método públicoApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)Aplica-se um AnimationClock para o DependencyProperty. Se a propriedade já é animada, especificado HandoffBehavior é usado. (Herdado de Animatable.)
Método públicoBeginAnimation(DependencyProperty, AnimationTimeline)Aplica uma animação para o DependencyProperty. A animação é iniciada quando o próximo quadro é processado. Se a propriedade especificada já é animada, o SnapshotAndReplace comportamento da entrega é usado. (Herdado de Animatable.)
Método públicoBeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)Aplica uma animação para o DependencyProperty. A animação é iniciada quando o próximo quadro é processado. Se a propriedade especificada já é animada, especificado HandoffBehavior é usado. (Herdado de Animatable.)
Método públicoCheckAccessDetermina se o segmento de chamada tem acesso a este DispatcherObject. (Herdado de DispatcherObject.)
Método públicoClearValue(DependencyProperty)Limpa o valor local de uma propriedade. A propriedade a ser limpa é especificada por um identificador da DependencyProperty. (Herdado de DependencyObject.)
Método públicoClearValue(DependencyPropertyKey)Limpa o valor local de uma propriedade somente leitura. A propriedade a ser limpa é especificada por uma DependencyPropertyKey. (Herdado de DependencyObject.)
Método públicoCloneCria um clone modificável isso DrawingBrush, fazendo cópias profunda dos valores do objeto. Ao copiar propriedades de dependência, esse método copia ligações de dados e referências de recurso (mas eles não mais poderão resolver) mas não animações ou seus valores atuais.
Método públicoCloneCurrentValueCria um clone modificável isso DrawingBrush objeto, fazendo cópias profunda dos valores atuais desse objeto. Referências de recurso, as ligações de dados e animações não são copiadas, mas são de seus valores atuais.
Método públicoCoerceValueConverte o valor especificado propriedade de dependência. Isso é feito chamando qualquer CoerceValueCallback especificada na metadados de propriedade para a propriedade de dependência conforme ela existe na chamada de função DependencyObject. (Herdado de DependencyObject.)
Método públicoEqualsDetermina se um fornecido DependencyObject é equivalente à atual DependencyObject. (Herdado de DependencyObject.)
Método públicoFreeze()Torna o objeto atual unmodifiable e define sua IsFrozen propriedade para true. (Herdado de Freezable.)
Método públicoGetAnimationBaseValueRetorna o valor sem animação do especificado DependencyProperty. (Herdado de Animatable.)
Método públicoGetAsFrozenCria uma cópia congelada da Freezable, usando valores de propriedade de base (sem animação). Porque a cópia está congelada, qualquer subobjetos congelados são copiados por referência. (Herdado de Freezable.)
Método públicoGetCurrentValueAsFrozenCria uma cópia congelada da Freezable usando valores de propriedade atual. Porque a cópia está congelada, qualquer subobjetos congelados são copiados por referência. (Herdado de Freezable.)
Método públicoGetHashCodeObtém um código de hash para este DependencyObject. (Herdado de DependencyObject.)
Método públicoGetLocalValueEnumeratorCria um enumerador especializado para determinar quais propriedades de dependência localmente têm definir valores nessa DependencyObject. (Herdado de DependencyObject.)
Método públicoGetType Obtém o Type da instância atual. (Herdado de Object.)
Método públicoGetValueRetorna o valor atual de efetivo de um propriedade de dependência nesta instância de um DependencyObject. (Herdado de DependencyObject.)
Método públicoInvalidatePropertyAvalia o valor efetivo de propriedade de dependência especificado (Herdado de DependencyObject.)
Método públicoReadLocalValueRetorna o valor de local de um propriedade de dependência, se ele existir. (Herdado de DependencyObject.)
Método públicoSetCurrentValueDefine o valor de um propriedade de dependência sem alterar sua fonte de valor. (Herdado de DependencyObject.)
Método públicoSetValue(DependencyProperty, Object)Define o valor de local de um propriedade de dependência, especificado por seu identificador de propriedade de dependência. (Herdado de DependencyObject.)
Método públicoSetValue(DependencyPropertyKey, Object)Define o valor de local de somente leitura propriedade de dependência, especificado pelo DependencyPropertyKey identificador de propriedade de dependência. (Herdado de DependencyObject.)
Método protegidoShouldSerializePropertyRetorna um valor que indica se os processos de serialização devem serializar o valor para o fornecido propriedade de dependência. (Herdado de DependencyObject.)
Método públicoToString() Retornar a representação de cadeia de caracteres, isso Brush. (Herdado de Brush.)
Método públicoToString(IFormatProvider) Cria uma representação de seqüência de caracteres desse objeto com base nas informações de formatação específicas da cultura especificadas. (Herdado de Brush.)
Método públicoVerifyAccessImpõe que o segmento de chamada tem acesso a este DispatcherObject. (Herdado de DispatcherObject.)
Superior
  NomeDescrição
Evento públicoChangedOcorre quando o Freezable ou um objeto nele contido é modificado. (Herdado de Freezable.)
Superior
  NomeDescrição
Campo públicoMembro estáticoDrawingPropertyIdentifica o Drawingpropriedade de dependência. 
Superior
  NomeDescrição
Implementação explícita da interfaceMétodo particularIFormattable.ToStringFormata o valor da instância atual usando o formato especificado. (Herdado de Brush.)
Superior

A ilustração a seguir mostra as formas e texto que foram pintadas com uma DrawingBrush.

Formas e texto pintado com um pincel de desenho

DrawingBrush output examples

Para mais informações e exemplos, consulte Pintura com imagens, desenhos e elementos visuais.

Este exemplo mostra como pintar uma área com um desenho. Para pintar uma área com um desenho, use um DrawingBrush e um ou mais objetos Drawing. O seguinte exemplo usa um DrawingBrush para pintar um objeto com um desenho de duas elipses.


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

        }
    }
}


A seguinte ilustração mostra a saída deste exemplo.

Output from a DrawingBrush

(O centro e forma é banco por razões descritas em Como: controlar o preenchimento de uma forma composta.)

Ao definir as propriedades Viewport e TileMode de um objeto DrawingBrush, você cria um padrão de repetição. O seguinte exemplo pinta um objeto com um padrão criado de um desenho de duas elipses.


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

        }

    }
}


A seguinte ilustração mostra a saída latejada de DrawingBrush.

Tiled output from a DrawingBrush

Para mais informações sobre pincéis de desenho, consulte Pintura com imagens, desenhos e elementos visuais. Para obter mais informações sobre objetos Drawing, consulte Visão geral de objetos de desenho..

.NET Framework

Com suporte em: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte .Requisitos de sistema do NET Framework.
Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.
Isso foi útil para você?
(1500 caracteres restantes)

Contribuições da comunidade

ADICIONAR
A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
© 2013 Microsoft. Todos os direitos reservados.