Você está na página 1de 38

Introduo ao WPF

Pgina 1 de 38

Este um contedo traduzido por mquina. Coloque o ponteiro do mouse sobre o texto no painel de contedo para ver o texto original. Ajude a aprimorar a traduo.

Introduo ao WPF
.NET Framework 4 Windows Presentation Foundation (WPF) um sistema de apresentao de ltima gerao, para criar aplicativos clientes do Windows com experincias de usurio visualmente impressionantesCom o WPF, voc pode criar uma ampla gama de Ambas autnomos e aplicativos hospedados por navegador. Um 1 exemplo o de Aplicativo de exemplo da Contoso Healthcare mostrado na figura a seguir.

O ncleo do WPF um mecanismo de resoluo independente e renderizao vetorial que criado para tirar proveito dos modernos hardwares grficos . WPF estende o ncleo com um conjunto abrangente de recursos de desenvolvimento de aplicativo que incluem Extensible Application Markup Language (XAML),controles, associao de dados, layout, 2D e 3D Elementos grficos, animao, estilos, modelos, documentos, mdias, texto e tipografia. WPF est includo no Microsoft.NET Framework,portanto, voc pode criar aplicativos que incorporam outros elementos da .NET Framework biblioteca de classes. Esta viso geral destinada para principiantes e aborda os principais recursos e conceitos de WPF.Desenvolvedores WPF experientes buscando uma reviso tambm podem achar til esta viso geral. Observao

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 2 de 38

Para obter informaes sobre recursos WPF novos e atualizados no .NET Framework 3.5, consulte O que h de novo no Windows Presentation Foundation Verso 3.52.

Este tpico contm as seguintes sees. Programao com o WPF Marcao e cdigo Aplicativos Controles Entrada e Comando Layout Ligao de Dados Elementos grficos Animation Media Texto e tipografia Documentos Personalizando aplicativos WPF Prticas recomendadas de WPF Resumo Viso Geral e Exemplos Recomendados Tpicos relacionados

Programao com o WPF


WPFexiste sistema autnomo um subconjunto de.NET Frameworktipos localizados em grande parte oSystem.Windows3namespace. Se voc criou anteriormente aplicativos com .NET Frameworkusando gerenciado tecnologias, sistema autnomo ASP.NETe Windows Forms, o fundamentais WPFexperincia em programao deve estar familiarizada, instanciar classes, Conjunto propriedades, mtodos de chamada e identificador de eventos, todas sistema autnomo usando o seu favorito .NET Frameworklinguagem, de programao, sistema autnomo C#ou Visual Basic. Para oferecer suporte a alguns do mais poderoso WPFrecursos e para simplificar a experincia de programao WPFinclui construes de programao Adicional que melhoram a propriedades e eventos: Propriedades de dependncia e roteadas eventos . Para obter mais Informao sobre propriedades de dependncia, consulte Viso geral sobre propriedades de dependncia4.Para obter mais informaes sobre eventos roteados, consulte Viso geral sobre eventos roteados5.

Marcao e cdigo
WPF oferece aprimoramentos adicionais de programao para o desenvolvimento de aplicativos baseado em clientes Windows.Um aperfeioamento bvio a capacidade para desenvolver um aplicativo usando ambos a marcao e code-behind, uma experincia que os desenvolvedores de ASP.NET devem estar familiarizados.Geralmente voc usa Extensible Application Markup Language (XAML) marcao para implementar a aparncia de um aplicativo enquanto estiver usando linguagens gerenciadas de programao (cdigo) para implementar seu comportamento.Essa separao de aparncia e comportamento apresenta os seguintes benefcios: Os custos de desenvolvimento e manuteno so reduzidos pois a marcao especfica da aparncia no rigidamente aliada ao comportamento especfico do cdigo. Desenvolvimento mais eficiente porque os designers podem implementar a aparncia de um aplicativo simultaneamente com os desenvolvedores que estiverem implementando o comportamento do aplicativo.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 3 de 38

Vrias ferramentas de design podem ser usadas para implementar e Compartilhar de XAMLmarcao, para atingir os requisitos dos fatores que contribuem para o desenvolvimento 6 de aplicativo; de do Microsoft Expresso Geomtrico fornece uma experincia mais adequado aos designers, enquanto Visual Studio 2005destinos de desenvolvedores. Globalizao e localizao para aplicaes WPF bastante simplificada (consulte Viso geral de 7 globalizao e localizao do WPF ). A seguir est uma breve introduo a marcao e Code-behind.Para obter mais informaes sobre 8 este modelo de programao, consulte Viso geral do XAML (WPF) e Antes do cdigo e XAML no 9 WPF .

A marcao
XAML umlinguagem de marcao baseada em XML usada para implementar a aparncia do aplicativo declarativamente. Ela costuma ser usada para criar janelas, Caixa de Dilogo caixas, pginas e controles de usurio e a preench-los com controles, formas e grficos O exemplo a seguir usa XAML para implementar a aparncia de uma janela que contm um nico boto. XAML <Windowxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"Title="Window wi th Button"Width="250"Height="100"><!-- Add button to window --><ButtonName="button">Clic k Me!</Button></Window>

Especificamente, isso define uma janela e um boto, usando os elementos Window e Button, respectivamente.Cada elemento configurado com atributos, sistema autnomo o do Windowelemento Titleatributo para especificar o texto de BAR de ttulo da janela. Hora de Executar WPFconverte sistema autnomo elementos e atributos que so definidos na marcao para instncias de WPFclasses.Por exemplo, o Windowelemento convertido em uma instncia da Window10 classe cuja Title11propriedade o valor do Titleatributo. A figura a seguir mostra a interface do usurio (IU) que est definido por XAML no exemplo anterior.

Para obter mais informaes, consulte Viso geral do XAML (WPF)8. Como XAML baseado no XML, o IU que voc escreve com ele montado em uma hierarquia de elementos aninhados conhecida como um elemento rvore .A elemento rvore fornece uma maneira lgica e intuitiva para criar e gerenciar IUs.Para obter mais informaes, consulte rvores em WPF12.

Cdigo
O comportamento principal de um aplicativo implementar a funcionalidade que responde s interaes do usurio, incluindo a manipulao de eventos (por exemplo, clicar em um menu, barra de ferramentas ou boto) e a chamada lgica comercial e acesso lgico a dados na resposta.No WPF, esse comportamento geralmente implementado no cdigo que associado com a marcao.Esse tipo de cdigo conhecido como cdigo reserva.O exemplo a seguir mostra o cdigo reserva e a marcao atualizada do exemplo anterior.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 4 de 38

XAML <Windowxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:// schemas.microsoft.com/winfx/2006/xaml"x:Class="SDKSample.AWindow"Title="Window with Butt on"Width="250"Height="100"><!-- Add button to window --><ButtonName="button"Click="butto n_Click">Click Me!</Button></Window>

VB Namespace SDKSample PartialPublicClass AWindow Inherits System.Windows.Window PublicSubNew() ' InitializeComponent call is required to merge the UI' that is defined in m arkup with this class, including ' setting properties and registering event handlers InitializeComponent() EndSubPrivateSub button_Click(ByVal sender AsObject, ByVal e As RoutedEventArgs) ' Show message box when button is clicked MessageBox.Show("Hello, Windows Presentation Foundation!") EndSubEndClassEndNamespace

Nesse exemplo, o cdigo reserva implementa uma classe que derivada da Window10 classe.x:ClassAtributo usado para associar a marcao com a classe de Cdigobehind.InitializeComponent chamada de construtor da classe Cdigo-behind para mesclar a interface do usurio que est definido na marcao com a classe de Cdigo-behind.(InitializeComponent gerado para voc quando seu aplicativo criado, que o motivo pelo qual voc no precisa implement-lo manualmente.) A combinao de x:Class e InitializeComponent garante que sua implementao inicializada corretamente sempre que ela criada.A classe do cdigo reserva tambm implementa um manipulador de eventos para o boto do Click13 evento.Quando o boto clicado, o manipulador de eventos mostra um caixa de mensagem chamando o MessageBox.Show14mtodo. A figura a seguir mostra o resultado quando o boto clicado.

Para obter mais informaes, consulte Antes do cdigo e XAML no WPF9.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 5 de 38

Aplicativos
.NET Framework, System.Windows , marcao e cdigo constituem a base da experincia do desenvolvimento de aplicativos WPF.Alm disso, WPF possui recursos abrangentes para criar experincias de usurio com rico contedo.Para compactar esse contedo e entreg-lo aos usurios como "aplicativos", WPF fornece tipos e servios que so conhecidos coletivamente como o modelo de aplicativo .O modelo de aplicativo suporta o desenvolvimento tanto de aplicativos autnomos como aplicativos online.
3

Aplicativos autnomos.
Para aplicativos autnomos, voc pode usar Window a classe para criar janelas e caixas de dilogo que so acessadas atravs de barras de menus e barras ferramenta.A figura a seguir mostra um aplicativo autnomo com uma janela principal e um caixa de dilogo.
10

Alm disso, voc pode usar o seguinte WPFCaixa de Dilogo caixas: MessageBox15,OpenFileDialog16,SaveFileDialog17, ePrintDialog18. Para obter mais informaes, consulte Viso geral do WPF do Windows19.

Aplicativos Online
Para aplicativos online, conhecido como aplicativos de navegador XAML (XBAPs),voc pode criar pginas (Page20) e funes da pgina (PageFunction(Of T)21) que voc pode navegar entre usando hiperlinks (Hyperlink22 Classes).A figura a seguir mostra uma pgina em um XBAP hospedada no Internet Explorer 7.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 6 de 38

WPF Os aplicativos podem ser hospedados tanto em Microsoft Internet Explorer 6 como em Internet Explorer 7.WPF oferece as duas opes seguintes para alternativas de navegao: Frame23Para hospedar ilhas de contedo navegvel tanto em pginas ocomo em janelas. NavigationWindow24para hospedar contedo navegvel em uma janela inteira. Para obter mais informaes, consulte Viso geral de navegao25.

A Classe do aplicativo
XBAPse de aplicativos autnomos so freqentemente complexos o suficiente para solicitar servios Adicional com escopo de aplicativo, incluindo o gerenciamento de inicializao e o tempo de vida, propriedades Compartilhado e recursos compartilhados. O Application26classe encapsula esses servios e muito mais, e pode ser implementado usando apenas o XAMLconforme mostrado no exemplo a seguir. XAML

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 7 de 38

<Applicationxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"StartupUri= "MainWindow.xaml"/>

Este marcao a definio de aplicativo de um aplicativo autnomo e instrui WPF para criar um 26 27 Application objeto que abre automaticamente MainWindow quando o aplicativo iniciado. Um conceito chave para compreender Application que ele fornece uma plataforma comun de suporte para aplicativos de navegador hospedado e autnomo.Por exemplo, o anterior XAMLpode ser usado por um aplicativo online para navegar automaticamente para uma pgina quando um XBAP iniciado, conforme mostrado no exemplo o seguir. XAML <Applicationxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"StartupUri= "HomePage.xaml"/>
26

Para obter mais informaes, consulte Viso Geral do Gerenciamento de Aplicativo28.

Segurana
Como XBAPs so hospedados em um navegador, a segurana importante.Em particular, uma proteo de segurana de confiana parcial usada XBAPs para impor restries que so menores que ou iguais s restries impostas em HTML com base nos aplicativos.Alm disso, cada HTML recurso que seguro para executar a partir XBAPs na relao de confiana parcial foi testado usando um processo de segurana abrangente, detalhado no Estratgia de segurana do WPF - Engenharia de Segurana29. Ainda assim, a maioria dos WPF recursos pode ser executada com segurana a partir de XBAPs,conforme descrito em WPF Partial Trust Security30.

Controles
As experincias de usurio que so entregues pelo modelo de aplicativo so controles construdos.No WPF,"Controle" um termo do guarda-sol que se aplica a uma categoria de WPF classes que so hospedadas em uma janela ou uma pgina, tem uma interface do usurio (IU) e implementa algum comportamento. Para obter mais informaes, consulte Viso geral sobre controles31.

O WPF controle de rotao de chamada


Os controles WPF internos so listados aqui. Botes: Button32 e RepeatButton33. Caixas de dilogo: OpenFileDialog16,PrintDialog18, eSaveFileDialog17. Tinta digital: InkCanvas34 e InkPresenter35. Documentos: DocumentViewer36,FlowDocumentPageViewer37,FlowDocumentReader38,FlowDocumentScrollVie wer39, eStickyNoteControl40. Entrada: TextBox41,RichTextBox42, ePasswordBox43.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 8 de 38

Layout: 44 45 46 47 48 49 50 51 Border ,BulletDecorator ,Canvas ,DockPanel ,Expander ,Grid ,GridView ,GridSplitter ,Gr 52 53 54 55 56 57 58 59 oupBox ,Panel ,ResizeGrip ,Separator ,ScrollBar ,ScrollViewer ,StackPanel ,Thumb ,Vie 60 61 10 62 wbox ,VirtualizingStackPanel ,Window , EWrapPanel . Mdia: Image ,MediaElement , eSoundPlayerAction . Menus: ContextMenu ,Menu , eToolBar . Navegao: Frame23,Hyperlink22,Page20,NavigationWindow24, eTabControl69. Seleo: CheckBox ,ComboBox ,ListBox ,TreeView , eRadioButton ,Slider . Informao do usurio: AccessText76,Label77,Popup78,ProgressBar79,StatusBar80,TextBlock81, 82 EToolTip .
70 71 72 73 74 75 66 67 68 63 64 65

Entrada e Comando
Controles frequntemente detectam e respondem a entrada do usurio.O WPF sistema de entrada usa tanto os eventos diretos como os roteados para dar suporte a entrada de texto, ao foco de gerenciamento e ao posicionamento do mouse.Para obter mais informaes, consulte Input Overview83. Freqentemente, aplicativos tm necessidades complexas de entrada.WPFfornece um sistema de comando que separa as aes de entrada do usurio do cdigo que responde a essas aes.Para obter mais informaes, consulte Viso geral de Comando84.

Layout
Quando voc cria um IU, voc organiza os controles por local e tamanho para formar um layout.Um requisito chave de qualquer layout se adaptar a alteraes no tamanho da janela e na exibio das configuraes.Em vez de for-lo a escrever o cdigo para adaptar um layout nessas circunstncias, WPF fornece um sistema extensvel de layout de primeira classe para voc. A base do sistema de layout o posicionamento relativo, o que aumenta a capacidade de se adaptar s modificaes da janela e das condices de exibio.Alm disso, o layout do sistema gerencia a negociao entre os controles para determinar o layout.A negociao um processo de Dois etapas: primeiro, um controle informa ao seu pai que Localizao e Dimensionar Necessita de; em segundo lugar, o pai informa o controle que pode ter de espao. O sistema de layout exposto aos controles de filho por meio de base WPFclasses. Para layouts Comum, sistema autnomo grades de empilhamento e o encaixe, WPFinclui vrios controles de layout: Canvas46: Controles filho fornecem seu prprio layout. DockPanel47Controles filho: so alinhados com as bordas do painel. ;Grid49: Controles filho so posicionados por linhas e colunas. StackPanel58: Os controles filho so empilhados vertical ou horizontalmente. VirtualizingStackPanel61: Controles filho so virtualizados e organizados em uma nica linha que orientada tanto horizontal como verticalmente. WrapPanel62: Controles filho so posicionados em ordem da esquerda para a direita e quebradas para a prxima linha quando h mais controles na linha atual que o espao permite.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 9 de 38

O exemplo a seguir usa uma DockPanel47 para formatar vrios TextBox41 controles. XAML <Windowxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:// schemas.microsoft.com/winfx/2006/xaml"x:Class="SDKSample.LayoutWindow"Title="Layout with the DockPanel"Height="143"Width="319"><!--DockPanel to layout four text boxes--><DockPa nel><TextBoxDockPanel.Dock="Top">Dock = "Top"</TextBox><TextBoxDockPanel.Dock="Bottom">D ock = "Bottom"</TextBox><TextBoxDockPanel.Dock="Left">Dock = "Left"</TextBox><TextBoxBac kground="White">This TextBox "fills" the remaining space.</TextBox></DockPanel></Window>

O DockPanel47 permite que o filho TextBox41 controles para inform-lo como organiz-los.Para fazer 47 85 isso, o DockPanel implementa uma Dock propriedade que exposta aos controles filho para permitir que cada um deles especifique um estilo da plataforma. Observao Uma propriedade que implementada por um controle pai para uso por controles filho uma WPF construo chamada anexado a propriedade (consulte Attached Properties Overview86).

A figura a seguir mostra o resultado da XAML marcao no exemplo anterior.

Para obter mais informaes, consulte O sistema de layout87.Para obter um exemplo introdutrio, consulte o do Exemplo de galeria de layout do WPF88.

Ligao de Dados
A maioria dos aplicativos so criados para fornecer aos usurios os meios para exibir e editar dados.Para WPF aplicativos, o trabalho de armazenar e acessar dados j fornecido por tecnologias, como Microsoft SQL Server e ADO.NET.Depois dos dados serem acessados e carregados em objetos de um aplicativo gerenciado, o trabalho de disco rgido para WPF aplicativos comea.Basicamente, isso envolve duas coisas: 1. Copiar os dados dos objetos gerenciados para controles, onde os dados podem ser exibidos e editados. 2. Garantindo que alteraes feitas nos dados usando controles so copiadas de volta para os objetos gerenciados. Para simplificar o desenvolvimento de Aplicativo, WPFfornece um mecanismo de Ligar de dados automaticamente, execute estas etapas. A unidade Ncleo do mecanismo de Ligar de dados o Binding89classe, cuja funo Ligar um controle (o destino da Ligar) para um objeto de dados (a Fonte da Ligar).Esse relacionamento ilustrado pela figura a seguir.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 10 de 38

O exemplo a seguir demonstra como vincular um TextBox a uma instncia de um objeto Person personalizado.A Person implementao mostrada no cdigo a seguir. VB Namespace SDKSample Class Person Private _name AsString = "No Name"PublicProperty Name() AsStringGetReturn _name EndGetSet(ByVal value AsString) _name = value EndSetEndPropertyEndClassEndNamespace

41

A marcao a seguir vincula a TextBox41 a uma instncia de objeto Person personalizado. XAML <Windowxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:// schemas.microsoft.com/winfx/2006/xaml"x:Class="SDKSample.DataBindingWindow">

...

<!-- Bind the TextBox to the data source (TextBox.Text to Person.Name) --><TextBoxName=" personNameTextBox"Text="{Binding Path=Name}"/>

...

</Window>

VB Imports System.Windows ' WindowNamespace SDKSample PartialPublicClass DataBindingWindow Inherits Window PublicSubNew() InitializeComponent() ' Create Person data sourceDim person As Person = New Person() ' Make data source available for bindingMe.DataContext = person

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 11 de 38

EndSubEndClassEndNamespace

Nesse exemplo, a Person classe instanciada no cdigo reserva e definida como o contexto de 90 41 dados para o DataBindingWindow.Na marcao, a Text propriedade de TextBox est ligada Person.Name propriedade (usando a "{Binding ... }"XAMLsintaxe).Este XAML informa WPF para 41 91 vincular o TextBox controle ao Person objeto que armazenado na DataContext propriedade da janela. O WPFmecanismo associao de dados oferece suporte adicional que inclui a validao, classificao, filtragem e agrupamento.Alm disso, associao de dados suporta o uso de modelos de dados para criar IU personalizao para os dados ligados quando o IU exibida por padres WPF controles no adequado. Para obter mais informaes, consulte Reviso de Associao de Dados92.Para obter um exemplo 93 introdutrio, consulte o do Demo de vinculao de dados .

Elementos grficos
WPF Apresenta um conjunto amplo, escalonvel e flexvel de recursos grficos que possuem os seguintes benefcios: Elementos grficos de resoluo e dispositivos independentes .A unidade bsica de medida no sistema de WPF elementos grficos o Dispositivo Independente pixel ,que 1 / 96th de uma polegada, independentemente de resoluo da tela e fornece a base para a renderizao de resoluo e dispositivo independentes.Cada pixel de dispositivo independente dimensiona automaticamente para corresponder configurao do sistema que ele processa em pontos-por-polegada (dpi). Preciso aprimorada O WPF sistema de coordenadas medido com nmeros de ponto flutuante de preciso dupla em vez de preciso nica.Valores de opacidade e transformaes tambm so expressos sistema autnomo preciso duplo.WPFtambm oferece suporte a uma gama de cores ampla (scRGB) e fornece suporte integrado para o gerenciamento de entradas de espaos de cor diferente. Suporte de animao e elementos grficos avanado.WPFsimplifica a elementos grficos no programao Gerenciando cenas de animao para voc; preciso se preocupar sobre o Processando da cena renderizao loops e bilinear interpolao.Alm disso, WPF fornece suporte sucessos-teste e suporte completo Alpha-compositing. Acelerao de hardware.O WPF sistema de elementos grficos aproveita Hardware de Grficos Para Minimizar uso da CPU.

Formas 2D
WPF Fornece uma biblioteca de formas vetoriais comuns desenhadas 2D , como retngulos e elipses que so mostrados na ilustrao a seguir.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 12 de 38

Um recurso interessante de formas que elas no so apenas para exibio; formas implementam muitos dos recursos que voc espera de controles, incluindo Teclado e entrada do mouse.O exemplo 94 95 a seguir mostra o MouseUp evento de um Ellipse sendo tratado. XAML <Windowxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:// schemas.microsoft.com/winfx/2006/xaml"x:Class="SDKSample.EllipseEventHandlingWindow"Titl e="Click the Ellipse"><EllipseName="clickableEllipse"Fill="Blue"MouseUp="clickableEllips e_MouseUp"/></Window>

VB Imports System.Windows ' Window, MessageBoxImports System.Windows.Input ' MouseButtonEve ntArgsNamespace SDKSample PublicClass EllipseEventHandlingWindow Inherits Window PublicSubNew() InitializeComponent() EndSubPrivateSub clickableEllipse_MouseUp(ByVal sender AsObject, ByVal e As Mous eButtonEventArgs) MessageBox.Show("You clicked the ellipse!") EndSubEndClassEndNamespace

A figura a seguir mostra o que produzido pelo cdigo anterior.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 13 de 38

Para obter mais informaes, consulte Viso geral de Formas e Desenho bsico no WPF96.Para obter um exemplo introdutrio, consulte o do Exemplo de elementos de forma97.

Geometrias 2D
As 2D formas fornecidas pelo WPF abrangem o conjunto padro de formas bsicasNo entanto, voc talvez precise criar formas personalizadas para facilitar o design de um IU personalizado.Para essa finalidade, WPF fornece geometrias.A figura a seguir demonstra o uso de geometrias para criar uma forma personalizada que pode ser desenhada diretamente, usada como um pincel ou para clipar outras formas e controles. Path objetos podem ser usados para desenhar formas fechadas ou abertas, vrias formas e at mesmo formas curvas. Geometry objetos podem ser usados para recorte, sucessos-teste e renderizao de dados de grficos 2D.
99 98

Para obter mais informaes, consulte Viso Geral de Geometria100.Para obter um exemplo introdutrio, consulte o Geometrias Sample101 .

Efeitos 2D
Um subconjunto de WPF 2D recursos Inclui efeitos visuais, como gradientes, bitmaps, desenhos, pinturas com vdeos, rotao, escala e inclinao .Essas so todas obtidas com cursores; a figura a seguir mostra alguns exemplos.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 14 de 38

Para obter mais informaes, consulte WPF Brushes Overview102.Para obter um exemplo introdutrio, consulte o do Exemplo de pincis103.

Renderizao 3D
WPFtambm inclui3Drenderizar recursos que integram com2Delementos grficos para permitir a criao de mais interessantes e interessanteIUs.Por exemplo, a figura a seguir mostra 2D imagens processadas para 3D Formas.

Para obter mais informaes, consulte Viso geral de elementos grficos 3D104.Para obter um exemplo introdutrio, consulte o do Exemplo de 3-d slidos105.

Animation

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 15 de 38

WPF Suporte de animao permite que voc faa os controles aumentarem, se misturarem, rodarem e terminarem, para criar pginas de transies interessantes e muito mais.Voc pode animar a maioria WPFdas classes, mesmo as classes personalizadas.A figura a seguir mostra uma simples animao em ao.

Para obter mais informaes, consulte Reviso de Animao106.Para obter um exemplo introdutrio, consulte do Galeria de exemplo da animao107.

Media
Uma maneira de transmitir contedo rico atravs do uso de mdia audiovisual.O WPF oferece suporte especial para imagens, vdeo e udio.

Imagens
Imagens so comuns maioria dos aplicativos, e WPF fornece vrias maneiras para us-las.A figura a seguir mostra um IU com uma caixa de listagem que contm as imagens em miniatura.Quando uma miniatura selecionada, a imagem mostrada em tamanho normal.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 16 de 38

Para obter mais informaes, consulte Viso geral sobre imagens108.

Vdeo e udio
O controle MediaElement64 capaz de executar vdeo e udio, e ele flexvel o suficiente para ser a base para um reprodutor de mdia personalizado.A seguinte XAML marcao implementa um mdia player. XAML <MediaElementName="myMediaElement"Source="media/wpf.wmv"LoadedBehavior="Manual"Width="35 0"Height="250"/>

A janela na figura a seguir mostra o controle MediaElement64em ao.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 17 de 38

Para obter mais informaes, consulte Viso Geral de elementos grficos, animao e media do WPF109.

Texto e tipografia
Para facilitar a renderizao de texto de alta qualidade, WPF oferece os seguintes recursos: Suporte de fonte OpenType. Aprimoramentos ClearType. Alto desempenho que tira vantagem da acelerao do hardware. Integrao do texto com mdia, elementos grficos e animao. Mecanismos de suporte e retorno fonte internacional. Como uma demonstrao de integrao de texto com elementos grficos, a figura a seguir mostra o aplicativo de decorao de texto.

Para obter mais informaes, consulte Tipologia no WPF110.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 18 de 38

Documentos
WPFtem suporte nativo para o Trabalhando com trs tipos de documentos: documentos de fluxo de documentos Fixo e XML Paper Specification (XPS)documentos.WPFtambm fornece servios para criar, exibir, gerenciar, anotar, pacote e imprimir documentos.

Documentos de fluxo
Documentos de fluxo so projetados para otimizar a exibio e facilitar a leitura ajustando dinamicamente e refluxionando o contedo ao tamanho da janela e alterando as configuraes de 111 vdeo.A marcao a seguir XAML mostra a definio de um FlowDocument . XAML <FlowDocumentxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"><Paragrap hFontSize="18"FontWeight="Bold">Flow Document</Paragraph><Paragraph> Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure. </Paragraph>

...

</FlowDocument>

O exemplo a seguir demonstra como carregar um documento de fluxo em um FlowDocumentReader38 para exibir, pesquisar e imprimir. XAML <Windowxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:// schemas.microsoft.com/winfx/2006/xaml"x:Class="SDKSample.FlowDocumentReaderWindow"Title= "Flow Document Reader"><FlowDocumentReaderName="flowDocumentReader"/></Window>

VB Imports System.Windows 'WindowImports System.Windows.Documents 'FlowDocumentImports Syst em.IO 'FileStream, FileModeImports System.Windows.Markup 'XamlReaderNamespace SDKSample PublicClass FlowDocumentReaderWindow Inherits Window PublicSubNew() Me.InitializeComponent() Using stream1 As FileStream = New FileStream("AFlowDocument.xaml", _ FileMode.Open, FileAccess.Read) Dim document1 As FlowDocument = _ TryCast(XamlReader.Load(stream1), FlowDocument) Me.flowDocumentReader.Document = document1 EndUsingEndSubEndClassEndNamespace

O exemplo a seguir mostra o resultado.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 19 de 38

Para obter mais informaes, consulte Flow Document Overview

112

Documentos fixos
Documentos fixos so destinados para aplicativos que exigem uma apresentao precisa de "o que voc v o que voc obter" (WYSIWYG) , especialmente em relao impresso.Usos tpicos para documentos fixos incluem editorao eletrnica, edio de texto e layout de formulrios, onde a aderncia ao design original da pgina essencial. Documentos fixos mantm uma organizao precisa de seus contedos de maneira independente do dispositivo.Por exemplo, um documento fixo que exibido em uma exibio 96 pontos-por-polegada (dpi) aparece o mesmo como quando ele impresso em uma impressora laser 600 dpi ou um typesetter de foto 4800 PPP.O layout permanece o mesmo em todos os casos, embora a qualidade do documento varie dependendo dos recursos de cada dispositivo. Para obter mais informaes, consulte Documentos em Windows Presentation Foundation113.

Documentos XPS
XML Paper Specification (XPS)criao de documentosWPFdo fixo documentos.XPSdocumentos so descritos com umXML-com base no esquema, que essencialmente uma representao paginada de papel Eletrnica.XPS um Formatar de documento Abrir, de plataforma hbrida que foi projetado para facilitar a criao de compartilhamento, imprimindo e o arquivamento dos documentos paginados.Recursos importantes da XPS tecnologia incluem o seguinte: Compactao de XPSdocumentos sistema autnomo de ZipPackage114arquivos que esto de acordo com o (OPC), Abrir Packaging Conventions115. Hospedando tanto em aplicativos autnomos como em aplicativos baseados em um navegador. Gerao e manipulao manual de XPS documentos de WPF aplicativos. Processamento de alta fidelidade pela definio do pblico-alvo sendo a sada mxima da qualidade de dispositivo. Windows Vista Imprima o spool. Direcionar circulao de documentos para XPS-impressoras compatveis. IU Integrao com DocumentViewer36. A figura a seguir mostra um XPS documento que exibido por um DocumentViewer36.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 20 de 38

DocumentViewer Tambm permite que os usurios alterem o modo de exibio, pesquisa e XPS imprimam documentos. Para obter mais informaes, consulte Documentos no WPF113.

36

Anotaes
As anotaes so lembretes ou comentrios que so adicionados aos documentos para sinalizar informaes ou realar itens de interesse para referncia posterior.Embora seja fcil gravar anotaes em documentos impressos, a capacidade para "gravar" anotaes em documentos eletrnicos est geralmente limitado ou indisponvel.Em WPF,no entanto, um sistema de anotaes fornecido para oferecer suporte s notas autoadesivas e notas iluminadas.Alm disso, essas anotaes podem ser aplicadas aos documentos hospedados no DocumentViewer36controle, conforme mostrado na figura a seguir.

Para obter mais informaes, consulte Viso geral de Anotaes116.

Empacotamento
Os WPF System.IO.Packaging117 APIs permitem que os seus aplicativos organizem os dados, o contedo e os recursos em documentos simples, portteis, de fcil distribuio e de fcil acesso ZIP.Assinaturas digitais podem ser includas para autenticar itens que esto contidos em um pacote e verificar se o item assinado no foi violado ou modificado.Voc tambm pode criptografar os pacotes usando Gerenciamento de direitos para restringir o acesso s informaes protegidas.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 21 de 38

Para obter mais informaes, consulte Documentos no WPF113.

Imprimindo
O .NET Framework inclui um subsistema de impresso que WPF aumenta com o suporte do controle do sistema de impresso aperfeioado.Aperfeioamentos de impresso incluem o seguinte: Instalao em tempo real de servidores de impresso remotas e filas. Descoberta dinmica dos recursos da impressora. Configurao dinmica das opes de impressora. Reencaminhamento e reprioritizao do processo de impresso. XPS Documentos tambm possuem um aperfeioamento especfico de desempenho.O caminho de impresso existente Microsoft Windows Graphics Device Interface (GDI) geralmente requer duas converses: A primeira converso de um documento em um formato do processador de impresso, como Metarquivo Avanado (EMF). Uma segunda converso para a linguagem de descrio da pgina da impressora, como PostScript ou PCL (linguagem de controle de impressora). No entanto, os documentos XPS evitam essas converses porque um componente de formato do arquivo XPS um idiom do processador de impresso e uma linguagem de descrio de pgina.Esse suporte ajuda a reduzir tanto o tamanho do arquivo de spool como o carregamento das impressoras da rede. Para obter mais informaes, consulte Viso Geral de Impresso118.

Personalizando aplicativos WPF


At este ponto, voc viu o ncleo WPF criando blocos para o desenvolvimento de aplicativos.Voc usa o modelo de aplicativo para hospedar e entregar contedo do aplicativo, que consiste principalmente nos controles do mesmo.Para simplificar a organizao dos controles em um IU e para garantir que a organizao mantida na face de alteraes para o tamanho da janela e exibir as configuraes, voc usa o WPF sistema de layout.Porque a maioria dos aplicativos permitem que os usurios interajam com dados, Usar a vinculao de dados para reduzir o trabalho de integrar o seu IUcom dados. Para aprimorar a aparncia visual do seu aplicativo, voc utilizar a ampla gama de elementos grficos, animao e mdia suporte fornecido por WPF.Finalmente, se seu aplicativo opera em texto e documentos, voc pode usar o texto WPF,tipografia, documento, anotao, compactao e impresso dos recursos. Frequentemente, entretanto, as noes bsicas so insuficientes para criar e gerenciar uma experincia do usurio realmente distinta e visualmente impressionante.Os WPF controles padro podem no se integrar com a aparncia desejada do seu aplicativo.Dados podem no ser exibidos da maneira mais eficaz.Experincia de um usurio do seu aplicativo pode no ser adequada para a aparncia e sensao padro dos Windows Temas.De vrias maneiras, uma tecnologia de apresentao precisa de extensibilidade visual assim como qualquer outro tipo de extensibilidade. Por esse motivo, WPF fornece uma variedade de mecanismos para a criao de experincias nicas de usurio, incluindo um modelo rico de contedo para controles, disparadores, controles e modelos de dados, estilos, IU recursos, temas e capas.

Modelo de contedo
O objetivo principal da maioria dos WPF controles exibir o contedo.Em WPF,o tipo e nmero de itens que podem constituir o contedo de um controle como o controle da Contedo do modelo

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 22 de 38

conhecido.Alguns controles podem conter um nico item e um tipo de contedo; por exemplo, o 41 contedo de um TextBox um valor da sequncia de caracteres que atribudo propriedade 90 Text .O exemplo a seguir define o contedo de um TextBox41. XAML <Windowxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:// schemas.microsoft.com/winfx/2006/xaml"x:Class="SDKSample.TextBoxContentWindow"Title="Tex tBox Content">

...

<TextBoxText="This is the content of a TextBox."/>

...

</Window>

A figura a seguir mostra o resultado.

Outros controles, no entanto, podem conter vrios itens de diferentes tipos de contedo; o contedo de um Button32,especificado pela propriedade Content119,pode conter uma variedade de itens, incluindo controles de layout, texto, imagens e formas.O exemplo a seguir mostra um Button32 com contedo que inclui um DockPanel47, um Label77, um Border44 e um MediaElement64. XAML <Windowxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:// schemas.microsoft.com/winfx/2006/xaml"x:Class="SDKSample.ButtonContentWindow"Title="Butt on Content">

...

<ButtonMargin="20"><!-- Button Content --><DockPanelWidth="200"Height="180"><LabelDockPa nel.Dock="Top"HorizontalAlignment="Center">Click Me!</Label><BorderBackground="Black"Bor derBrush="Yellow"BorderThickness="2"CornerRadius="2"Margin="5"><MediaElementSource="medi a/wpf.wmv"Stretch="Fill"/></Border></DockPanel></Button>

...

</Window>

A figura a seguir mostra o contedo desse boto.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 23 de 38

Para obter mais informaes sobre os tipos de contedo que so suportados pelo vrios controles, consulte Modelo de contedo WPF120.

Disparadores
Embora o objetivo principal de XAML marcao implementar a aparncia de um aplicativo, voc tambm pode usar XAML para implementar alguns aspectos do comportamento do aplicativo.Um exemplo o uso de disparadores para alterar um aplicativo da aparncia com base em interaes do usurio.Para obter mais informaes sobre disparadores, consulte Styling and Templating121.

Modelos de Controle
O padro IUs para WPF controles normalmente so construdos de outros controles e formas.Por exemplo, um Button32 composto de dois ButtonChrome122 e ContentPresenter123 controles.O ButtonChrome122 fornece a aparncia padro boto, enquanto o ContentPresenter123 Exibe contedo do boto, conforme especificado pela propriedade Content119. s vezes, a aparncia de padro de um controle pode ser incongruente com a aparncia geral de um aplicativo.Nesse caso, voc pode usar um ControlTemplate124 para alterar a aparncia do controle do IU sem alterar seu contedo e comportamento. Por exemplo, o exemplo a seguir mostra como alterar a aparncia de um Button32 usando um ControlTemplate124. XAML <Windowxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:// schemas.microsoft.com/winfx/2006/xaml"x:Class="SDKSample.ControlTemplateButtonWindow"Tit le="Button with Control Template"Height="158"Width="290"><!-- Button using an ellipse -><ButtonContent="Click Me!"Click="button_Click"><Button.Template><ControlTemplateTargetT ype="{x:Type Button}"><GridMargin="5"><EllipseStroke="DarkBlue"StrokeThickness="2"><Elli pse.Fill><RadialGradientBrushCenter="0.3,0.2"RadiusX="0.5"RadiusY="0.5"><GradientStopCol or="Azure"Offset="0.1"/><GradientStopColor="CornflowerBlue"Offset="1.1"/></RadialGradien tBrush></Ellipse.Fill></Ellipse><ContentPresenterName="content"HorizontalAlignment="Cent er"VerticalAlignment="Center"/></Grid></ControlTemplate></Button.Template></Button></Win dow>

VB

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 24 de 38

Imports System.Windows ' Window, RoutedEventArgs, MessageBoxNamespace SDKSample PublicClass ControlTemplateButtonWindow Inherits Window PublicSubNew() InitializeComponent() EndSubPrivateSub button_Click(ByVal sender AsObject, ByVal e As RoutedEventArgs) MessageBox.Show("Hello, Windows Presentation Foundation!") EndSubEndClassEndNamespace

Nesse exemplo, o boto IU padro foi substitudo por um Ellipse que tem uma borda azul-escuro e preenchida usando um RadialGradientBrush125.O controle ContentPresenter123 exibe o contedo do Button32, "Click Me!" Quando o Button32 clicado, o evento Click13 ainda gerado como parte do comportamento padro do controle Button32.O resultado mostrado na figura a seguir.

95

Para obter mais informaes, consulte ControlTemplate124.Para obter um exemplo introdutrio, consulte de estilo com ControlTemplates Sample126.

Modelos de dados
Enquanto um modelo de controle permite que voc especifique a aparncia de um controle, um modelo de dados permite que voc especifique a aparncia do contedo de um controle.Modelos de dados so frequentemente usados para aprimorar como os dados vinculados so exibidos.A figura a seguir mostra a aparncia padro para um ListBox72 que vinculada a uma coleo de objetos Task, onde cada tarefa tem um nome, descrio e prioridade.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 25 de 38

A aparncia padro o que voc esperaria de um ListBox72.No entanto, a aparncia padro de cada tarefa contm somente o nome da tarefa.Para mostrar o nome da tarefa, descrio e a prioridade, a aparncia padro dos itens do controle ListBox72 de lista acoplada deve ser alterada usando um 127 127 DataTemplate .O seguinte XAML define um DataTemplate , que aplicado a cada tarefa usando o 128 atributo ItemTemplate . XAML <Windowxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:// schemas.microsoft.com/winfx/2006/xaml"x:Class="SDKSample.DataTemplateWindow"Title="With a Data Template">

...

<Window.Resources><!-- Data Template (applied to each bound task item in the task collec tion) --><DataTemplatex:Key="myTaskTemplate"><BorderName="border"BorderBrush="DarkSlateB lue"BorderThickness="2"CornerRadius="2"Padding="5"Margin="5"><Grid><Grid.RowDefinitions> <RowDefinition/><RowDefinition/><RowDefinition/></Grid.RowDefinitions><Grid.ColumnDefini tions><ColumnDefinitionWidth="Auto"/><ColumnDefinition/></Grid.ColumnDefinitions><TextBl ockGrid.Row="0"Grid.Column="0"Padding="0,0,5,0"Text="Task Name:"/><TextBlockGrid.Row="0" Grid.Column="1"Text="{Binding Path=TaskName}"/><TextBlockGrid.Row="1"Grid.Column="0"Padd ing="0,0,5,0"Text="Description:"/><TextBlockGrid.Row="1"Grid.Column="1"Text="{Binding Pa th=Description}"/><TextBlockGrid.Row="2"Grid.Column="0"Padding="0,0,5,0"Text="Priority:" /><TextBlockGrid.Row="2"Grid.Column="1"Text="{Binding Path=Priority}"/></Grid></Border>< /DataTemplate></Window.Resources>

...

<!-- UI --><DockPanel><!-- Title --><LabelDockPanel.Dock="Top"FontSize="18"Margin="5"Con tent="My Task List:"/><!-- Data template is specified by the ItemTemplate attribute -->< ListBoxItemsSource="{Binding}"ItemTemplate="{StaticResource myTaskTemplate}"HorizontalCo ntentAlignment="Stretch"IsSynchronizedWithCurrentItem="True"Margin="5,0,5,5"/></DockPane l>

...

</Window>

A figura a seguir mostra o efeito desse cdigo.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 26 de 38

Observe que o ListBox manteve seu comportamento e a aparncia geral; somente a aparncia do contedo que est sendo exibido pela caixa de listagem foi alterado. Para obter mais informaes, consulte Viso geral sobre Templating de dados129.Para obter um exemplo introdutrio, consulte o do guia de Introduo ao exemplo de modelagem de dados130.

72

Estilos
Estiloss permitem que os desenvolvedores e designers padronizar em uma determinada aparncia para seus Produto.WPFfornece um modelo de estilo de Forte, a base da qual oStyle131elemento.O exemplo a seguir cria um estilo que define a cor do plano de fundo para cada Button32 em uma janela para Orange. XAML <Windowxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:// schemas.microsoft.com/winfx/2006/xaml"x:Class="SDKSample.StyleWindow"Title="Styles">

...

<!-- Style that will be applied to all buttons --><StyleTargetType="{x:Type Button}"><Se tterProperty="Background"Value="Orange"/><SetterProperty="BorderBrush"Value="Crimson"/>< SetterProperty="FontSize"Value="20"/><SetterProperty="FontWeight"Value="Bold"/><SetterPr operty="Margin"Value="5"/></Style>

...

<!-- This button will have the style applied to it --><Button>Click Me!</Button><!-- Thi s labe will not have the style applied to it --><Label>Don't Click Me!</Label><!-- This button will have the style applied to it --><Button>Click Me!</Button>

...

</Window>

Porque esse estilo atinge todos os controles Button32, o estilo aplicado automaticamente para todos os botes na janela, conforme mostrado na figura a seguir.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 27 de 38

Para obter mais informaes, consulte Styling and Templating121.Para obter um exemplo introdutrio, 132 consulte o do guia de Introduo ao exemplo de modelagem e de estilos .

Recursos
Controles em um aplicativo devem compartilhar a mesma aparncia, que pode incluir qualquer coisa entre fontes e cores de plano de fundo para modelos de controles, modelos de dados e estilos.Voc pode usar suporte de WPF para recursos de interface do usurio (IU) a fim de encapsular esses recursos em um nico local para reutilizao. O exemplo a seguir define uma cor de plano de fundo comum que compartilhada por um Button32 e um Label77. XAML <Windowxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:// schemas.microsoft.com/winfx/2006/xaml"x:Class="SDKSample.ResourcesWindow"Title="Resource s Window"><!-- Define window-scoped background color resource --><Window.Resources><Soli dColorBrushx:Key="defaultBackground"Color="Red"/></Window.Resources>

...

<!-- Button background is defined by window-scoped resource --><ButtonBackground="{Stati cResource defaultBackground}">One Button</Button><!-- Label background is defined by win dow-scoped resource --><LabelBackground="{StaticResource defaultBackground}">One Label</ Label>

...

</Window>

Este exemplo implementa um recurso de cor de plano de fundo usando o elemento da propriedade Window.Resources.Este recurso est disponvel para todos os filhos do Window10.H uma variedade de escopos de recursos, incluindo o seguinte, listados na ordem em que eles so resolvidos: 1. Um controle individual (usando a propriedade FrameworkElement.Resources133 herdada). 2. Um Window10 ou um Page20 (tambm usando a propriedade FrameworkElement.Resources133 herdada). 3. Um Application26 (usando a propriedade Application.Resources134). A variedade de escopos oferece a voc flexibilidade com relao maneira como que voc define e compartilha seus recursos.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 28 de 38

Como uma alternativa a associar diretamente os seus recursos com um escopo especfico, voc pode 135 compactar um ou mais recursos usando um ResourceDictionary separado que pode ser referenciado em outras partes de um aplicativo.Por exemplo, o exemplo a seguir define um padro de cor do plano de fundo em um dicionrio de recursos. XAML <ResourceDictionaryxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmln s:x="http://schemas.microsoft.com/winfx/2006/xaml"><!-- Define background color resource --><SolidColorBrushx:Key="defaultBackground"Color="Red"/><!-- Define other resources ->

...

</ResourceDictionary>

O exemplo a seguir faz referncia ao dicionrio de recursos definido no exemplo anterior para que ele seja compartilhado por um aplicativo. XAML <Applicationxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="ht tp://schemas.microsoft.com/winfx/2006/xaml"x:Class="SDKSample.App"><Application.Resource s><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionarySource=" BackgroundColorResources.xaml"/></ResourceDictionary.MergedDictionaries></ResourceDictio nary></Application.Resources>

...

</Application>

Recursos e dicionrios de recurso so a base de suporte de WPF para temas e capas.


136 Para obter mais informaes, consulte Viso geral sobre Recursos .

Temas e Aparncias
Da perspectiva do visual, um tema define a aparncia global de Windowse os aplicativos que so executados dentro do proprietrio.Windowsvem com vrios temas.Por exemplo, Microsoft Windows XP vem com temas do Windows XP e Windows Classic, enquanto Windows Vista vem com os temas do Windows Vista e Windows Classic.A aparncia que definida por um tema define a aparncia padro para um aplicativo de WPF.WPFno entanto, no integrar diretamente com oWindowstemas. Porque a aparncia de WPF definido por modelos, WPFinclui um modelo para cada um dos conhecidos Windowstemas, incluindo o Aero ( Windows Vista), Clssico ( Microsoft Windows 2000), Luna ( Microsoft Windows XP) e Royale ( Microsoft Windows XP Media Center Edition 2005). Esses temas so empacotados sistema autnomo dicionrios de recurso sero resolvidos se sistema autnomo recursos no so encontrados em um aplicativo. Muitos aplicativos dependem desses temas para definir sua aparncia visual; restante consistente com Windowsaparncia ajuda sistema autnomo usurios se familiarizem com mais aplicativos com mais com facilidade. Por outro lado, a experincia do usurio para alguns aplicativos no necessariamente provm de temas padro.Por exemplo, Microsoft Windows Media Player opera em dados de udio e vdeo e se beneficia de um estilo diferente da experincia do usurio.Tais IUs tendem a fornecer temas

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 29 de 38

personalizados, especficos do aplicativo.Elas so conhecidas como capas, e os aplicativos que so encapados geralmente fornecem ganchos pelo qual os usurios podem personalizar vrios aspectos da capa. Microsoft Windows Media Player possui vrias capas pr-fabricadas, bem como um host de capas de terceiros. Temas e capas em WPF so mais facilmente definidas usando dicionrios de recursos.O exemplo a seguir mostra definies de capa de exemplo. XAML <!-- Blue Skin --><ResourceDictionaryxmlns="http://schemas.microsoft.com/winfx/2006/xaml /presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="clr-nam espace:SDKSample"><StyleTargetType="{x:Type Button}"><SetterProperty="Background"Value=" Blue"/></Style>

...

</ResourceDictionary>

XAML <!-- Yellow Skin --><ResourceDictionaryxmlns="http://schemas.microsoft.com/winfx/2006/xa ml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="clr-n amespace:SDKSample"><StyleTargetType="{x:Type Button}"><SetterProperty="Background"Value ="Yellow"/></Style>

...

</ResourceDictionary>

Para obter mais informaes, consulte "Recursos e Temas Compartilhados" no Styling and Templating121.

Controles personalizados.
Embora WPF fornea um host de suporte de personalizao, voc poder encontrar situaes onde os controles existentes de WPF no atendem s necessidades de seu aplicativo ou seus usurios.Isso pode ocorrer quando: O IU que voc precisa no pode ser criado ao personalizar a aparncia de implementaes WPF existentes. O comportamento que voc precisa no suportado (ou no facilmente suportado) por implementaes WPF existentes. Neste ponto, no entanto, voc pode tirar proveito de um dos trs modelos WPF para criar um novo controle.Cada modelo tem como alvo um cenrio especfico e requer o controle personalizado para derivar de uma classe base WPF particular.Os trs modelos so listados aqui: User Control Model.Um controle personalizado derivado de UserControl137 e composto de um ou mais outros controles.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 30 de 38

Control Model.Um controle personalizado derivado de Control138 e usado para criar implementaes que separam o seu comportamento de sua aparncia usando modelos, bem como a maioria dos controles WPF.A derivao de Control138 permite que voc tenha mais liberdade para criar um IU personalizado do que controles de usurio, mas ele pode exigir mais esforo. Framework Element Model.Um controle personalizado derivado de FrameworkElement quando sua aparncia definida pela lgica de processamento personalizada (no modelos).
139

O exemplo a seguir mostra um controle personalizado numrico para cima/para baixo que derivado 137 de UserControl . XAML <UserControlxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="ht tp://schemas.microsoft.com/winfx/2006/xaml"x:Class="SDKSample.NumericUpDown"><Grid><Grid .RowDefinitions><RowDefinition/><RowDefinition/></Grid.RowDefinitions><Grid.ColumnDefini tions><ColumnDefinition/><ColumnDefinition/></Grid.ColumnDefinitions><!-- Value text box --><BorderBorderThickness="1"BorderBrush="Gray"Margin="2"Grid.RowSpan="2"VerticalAlignm ent="Center"HorizontalAlignment="Stretch"><TextBlockName="valueText"Width="60"TextAlignm ent="Right"Padding="5"/></Border><!-- Up/Down buttons --><RepeatButtonName="upButton"Cli ck="upButton_Click"Grid.Column="1"Grid.Row="0">Up</RepeatButton><RepeatButtonName="downB utton"Click="downButton_Click"Grid.Column="1"Grid.Row="1">Down</RepeatButton></Grid></Us erControl>

VB imports System 'EventArgsimports System.Windows 'DependencyObject, DependencyPropertyCha ngedEventArgs, ' FrameworkPropertyMetadata, PropertyChangedCallback, ' RoutedPropertyCha ngedEventArgsimports System.Windows.Controls 'UserControlNamespace SDKSample ' Interaction logic for NumericUpDown.xamlPartialPublicClass NumericUpDown Inherits System.Windows.Controls.UserControl 'NumericUpDown user control implementation

...

EndClassEndNamespace

O prximo exemplo ilustra o XAML que necessrio para incorporar um controle de usurio em um Window10. XAML <Windowxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:// schemas.microsoft.com/winfx/2006/xaml"x:Class="SDKSample.UserControlWindow"xmlns:local=" clr-namespace:SDKSample"Title="User Control Window">

...

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 31 de 38

<!-- Numeric Up/Down user control --><local:NumericUpDown/>

...

</Window>

A figura a seguir mostra o controle NumericUpDown hospedado em um Window .

10

Para obter mais informaes sobre controles personalizados, consulte Viso geral sobre criao de controles140.

Prticas recomendadas de WPF


Como com qualquer plataforma de desenvolvimento, WPF pode ser usado em uma variedade de maneiras para atingir o resultado desejado.Como uma maneira de garantir que seus aplicativos WPFforneam as experincia do usurio requeridas e atender s demandas do pblico em geral, existem melhores prticas recomendadas para acessibilidade, globalizao e localizao, e desempenho.Consulte o seguinte para mais informaes: Prticas recomendadas de Acessibilidade141 Viso geral de globalizao e localizao do WPF7 Optimizing WPF Application Performance142 WPF Security143

Resumo
WPF uma tecnologia de apresentao abrangente para criar uma grande variedade de aplicativos do cliente visualmente atordoantes.Esta introduo forneceu um olhar aos principais recursos do WPF. A prxima etapa criar aplicativos WPF! Ao cri-los, voc pode voltar a esta introduo para uma atualizao sobre os principais recursos e para localizar referncias a cobertura mais detalhada dos recursos abordados nesta introduo.

Viso Geral e Exemplos Recomendados


Os seguintes exemplos e vises gerais so mencionados nessa Introduo.

Viso geral

Viso geral de elementos grficos 3D104

Viso geral sobre imagens108

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 32 de 38

Prticas recomendadas de Acessibilidade141 Reviso de Animao


106

Input Overview83
116

Viso geral de Anotaes

Sistema de layout87 Viso geral de navegao


25

Viso Geral do Gerenciamento de 28 Aplicativo Viso geral de Comando


84

Viso Geral de Impresso118 Viso geral sobre Recursos


136

Viso geral sobre criao de controles140 Viso geral sobre controles


31

Viso geral sobre eventos roteados5 Viso geral de Formas e Desenho bsico no WPF96

Reviso de Associao de Dados

92

Tipologia no WPF WPF Security143

110

Viso geral sobre Templating de dados129 Viso geral sobre propriedades de 4 dependncia Documentos no WPF113 rvores em WPF12 Flow Document Overview112 Viso Geral de Geometria100 Getting Started with Ink144

Viso geral do WPF do Windows19 WPF Brushes Overview102 Modelo de contedo WPF120 Viso geral de globalizao e localizao do WPF7 Viso Geral de elementos grficos, animao e media do WPF109

Exemplos

Consulte tambm
Conceitos Introduo ao WPF145 Comentrios da comunidade do WPF146

Tabela de Ligaes
1 2 3 4 5 6

http://go.microsoft.com/fwlink/?LinkId=91196 http://msdn.microsoft.com/pt-br/library/bb613588.aspx http://msdn.microsoft.com/pt-br/library/system.windows.aspx http://msdn.microsoft.com/pt-br/library/ms752914.aspx http://msdn.microsoft.com/pt-br/library/ms742806.aspx http://go.microsoft.com/fwlink/?LinkID=88924

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 33 de 38

7 8 9

http://msdn.microsoft.com/pt-br/library/ms788718.aspx http://msdn.microsoft.com/pt-br/library/ms752059.aspx http://msdn.microsoft.com/pt-br/library/aa970568.aspx http://msdn.microsoft.com/pt-br/library/system.windows.window.aspx http://msdn.microsoft.com/pt-br/library/system.windows.window.title.aspx http://msdn.microsoft.com/pt-br/library/ms753391.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.primitives.buttonbase.click.aspx http://msdn.microsoft.com/pt-br/library/system.windows.messagebox.show.aspx http://msdn.microsoft.com/pt-br/library/system.windows.messagebox.aspx http://msdn.microsoft.com/pt-br/library/microsoft.win32.openfiledialog.aspx http://msdn.microsoft.com/pt-br/library/microsoft.win32.savefiledialog.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.printdialog.aspx http://msdn.microsoft.com/pt-br/library/ms748948.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.page.aspx http://msdn.microsoft.com/pt-br/library/ms615540.aspx http://msdn.microsoft.com/pt-br/library/system.windows.documents.hyperlink.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.frame.aspx http://msdn.microsoft.com/pt-br/library/system.windows.navigation.navigationwindow.aspx http://msdn.microsoft.com/pt-br/library/ms750478.aspx http://msdn.microsoft.com/pt-br/library/system.windows.application.aspx http://msdn.microsoft.com/pt-br/library/system.windows.application.mainwindow.aspx http://msdn.microsoft.com/pt-br/library/ms743714.aspx http://msdn.microsoft.com/pt-br/library/aa969774.aspx http://msdn.microsoft.com/pt-br/library/aa970910.aspx http://msdn.microsoft.com/pt-br/library/bb613551.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.button.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.primitives.repeatbutton.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.inkcanvas.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.inkpresenter.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.documentviewer.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.flowdocumentpageviewer.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.flowdocumentreader.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.flowdocumentscrollviewer.aspx

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 34 de 38

40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72

http://msdn.microsoft.com/pt-br/library/system.windows.controls.stickynotecontrol.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.textbox.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.richtextbox.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.passwordbox.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.border.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.primitives.bulletdecorator.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.canvas.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.dockpanel.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.expander.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.grid.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.gridview.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.gridsplitter.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.groupbox.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.panel.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.primitives.resizegrip.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.separator.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.primitives.scrollbar.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.scrollviewer.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.stackpanel.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.primitives.thumb.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.viewbox.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.virtualizingstackpanel.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.wrappanel.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.image.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.mediaelement.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.soundplayeraction.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.contextmenu.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.menu.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.toolbar.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.tabcontrol.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.checkbox.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.combobox.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.listbox.aspx

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 35 de 38

73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

http://msdn.microsoft.com/pt-br/library/system.windows.controls.treeview.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.radiobutton.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.slider.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.accesstext.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.label.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.primitives.popup.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.progressbar.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.primitives.statusbar.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.textblock.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.tooltip.aspx http://msdn.microsoft.com/pt-br/library/ms754010.aspx http://msdn.microsoft.com/pt-br/library/ms752308.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.dockpanel.dock.aspx http://msdn.microsoft.com/pt-br/library/ms749011.aspx http://msdn.microsoft.com/pt-br/library/ms745058.aspx http://go.microsoft.com/fwlink/?LinkID=160054 http://msdn.microsoft.com/pt-br/library/system.windows.data.binding.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.textbox.text.aspx http://msdn.microsoft.com/pt-br/library/system.windows.frameworkelement.datacontext.aspx http://msdn.microsoft.com/pt-br/library/ms752347.aspx http://go.microsoft.com/fwlink/?LinkID=163703 http://msdn.microsoft.com/pt-br/library/system.windows.uielement.mouseup.aspx http://msdn.microsoft.com/pt-br/library/system.windows.shapes.ellipse.aspx http://msdn.microsoft.com/pt-br/library/ms747393.aspx http://go.microsoft.com/fwlink/?LinkID=160037 http://msdn.microsoft.com/pt-br/library/system.windows.shapes.path.aspx http://msdn.microsoft.com/pt-br/library/system.windows.media.geometry.aspx http://msdn.microsoft.com/pt-br/library/ms751808.aspx http://go.microsoft.com/fwlink/?LinkID=159989 http://msdn.microsoft.com/pt-br/library/aa970904.aspx http://go.microsoft.com/fwlink/?LinkID=159973 http://msdn.microsoft.com/pt-br/library/ms747437.aspx http://go.microsoft.com/fwlink/?LinkID=159964

100 101 102 103 104 105

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 36 de 38

106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138

http://msdn.microsoft.com/pt-br/library/ms752312.aspx http://go.microsoft.com/fwlink/?LinkID=159969 http://msdn.microsoft.com/pt-br/library/ms748873.aspx http://msdn.microsoft.com/pt-br/library/ms742562.aspx http://msdn.microsoft.com/pt-br/library/ms742190.aspx http://msdn.microsoft.com/pt-br/library/system.windows.documents.flowdocument.aspx http://msdn.microsoft.com/pt-br/library/aa970909.aspx http://msdn.microsoft.com/pt-br/library/ms748388.aspx http://msdn.microsoft.com/pt-br/library/system.io.packaging.zippackage.aspx http://go.microsoft.com/fwlink/?LinkID=71255 http://msdn.microsoft.com/pt-br/library/ms748864.aspx http://msdn.microsoft.com/pt-br/library/system.io.packaging.aspx http://msdn.microsoft.com/pt-br/library/ms742418.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.contentcontrol.content.aspx http://msdn.microsoft.com/pt-br/library/bb613548.aspx http://msdn.microsoft.com/pt-br/library/ms745683.aspx http://msdn.microsoft.com/pt-br/library/microsoft.windows.themes.buttonchrome.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.contentpresenter.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.controltemplate.aspx http://msdn.microsoft.com/pt-br/library/system.windows.media.radialgradientbrush.aspx http://go.microsoft.com/fwlink/?LinkID=160041 http://msdn.microsoft.com/pt-br/library/system.windows.datatemplate.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.itemscontrol.itemtemplate.aspx http://msdn.microsoft.com/pt-br/library/ms742521.aspx http://go.microsoft.com/fwlink/?LinkID=160009 http://msdn.microsoft.com/pt-br/library/system.windows.style.aspx http://go.microsoft.com/fwlink/?LinkID=160010 http://msdn.microsoft.com/pt-br/library/system.windows.frameworkelement.resources.aspx http://msdn.microsoft.com/pt-br/library/system.windows.application.resources.aspx http://msdn.microsoft.com/pt-br/library/system.windows.resourcedictionary.aspx http://msdn.microsoft.com/pt-br/library/ms750613.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.usercontrol.aspx http://msdn.microsoft.com/pt-br/library/system.windows.controls.control.aspx

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 37 de 38

139 140 141 142 143 144 145 146

http://msdn.microsoft.com/pt-br/library/system.windows.frameworkelement.aspx http://msdn.microsoft.com/pt-br/library/ms745025.aspx http://msdn.microsoft.com/pt-br/library/aa350483.aspx http://msdn.microsoft.com/pt-br/library/aa970683.aspx http://msdn.microsoft.com/pt-br/library/aa970906.aspx http://msdn.microsoft.com/pt-br/library/ms749012.aspx http://msdn.microsoft.com/pt-br/library/ms752299.aspx http://msdn.microsoft.com/pt-br/library/ms745659.aspx

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011

Introduo ao WPF

Pgina 38 de 38

Contedo da Comunidade
2011 Microsoft. Todos os direitos reservados.

http://msdn.microsoft.com/pt-br/library/aa970268(d=printer).aspx

20/07/2011