O que há de novo no Windows Presentation Foundation Versão 3.5

Este tópico discute brevemente as maiores diferenças entre as versões 3.0 e 3.5 do Windows Presentation Foundation (WPF).

Este tópico contém as seguintes seções.

  • Compatibilidade com a Versão 3.0
  • Aplicativos
  • Elementos gráficos
  • Gráficos 3D
  • Ligação de Dados
  • Controles
  • Documentos
  • Anotações
  • Tópicos relacionados

Compatibilidade com a Versão 3.0

Compatibilidade com versões posteriores e anteriores

Um aplicativo construído com WPF 3.0 irá rodar no WPF 3.5.

Um aplicativo criado com WPF 3.5 será executada no tempo de execução 3.0 se o aplicativo usa apenas recursos que estão disponível no WPF 3.0.

WPF 3.5 define um novo namespace de XML, https://schemas.microsoft.com/netfx/2007/xaml/presentation. Quando construindo um aplicativo usando WPF 3.5, você pode usar este namespace ou o namespace definido no WPF 3.0.

Focando um Tempo de Execução Específico

Aplicativos construídos com WPF 3.0 podem focar qualquer versão do framework maiores ou iguais à versão da aplicação para a qual foi originalmente feita. Para obter mais informações, consulte Como: Usar um arquivo de configuração de aplicativo para Destino uma versão do .NET Framework.

Aplicativos

As seguintes melhorias foram feitas ao modelo de aplicativos:

  • Suporte extensos para adendos e suporte para adendos visuais e não visuais para aplicativos autossuficientes e aplicativos de navegador XAML (XBAPs).

  • XBAPs podem agora rodar no Firefox.

  • Cookies podem ser compartilhados entre XBAPs e aplicativos Web do mesmo site de origem.

  • IntelliSense de XAML melhorado para maior produtividade.

  • Suporte de localização expandido.

Adendos Visuais e Não Visuais no WPF

Um aplicativo extensivo expõe funcionalidades de uma maneira que permite outras aplicações integrar-se e estender suas funcionalidades. Adendos são uma maneira comum para aplicações expor sua extensibilidade. No .NET Framework, um adendo é tipicamente uma montagem que é empacotada como uma biblioteca de linkagem dinâmica (.dll). O adendo é carregado dinamicamente por um aplicativo hospedeiro em tempo de execução para usar e estender serviços expostos pelo hospedeiro. O hospedeiro e o adendo interagem um com o outro por meio de um contrato bem conhecido, que tipicamente é uma interface comum que é publicada pelo aplicativo hospedeiro.

Uma vez que um aplicativo suporte adendos, desenvolvedores locais ou de terceiros podem criar adendos para ele. Existem muitos exemplos desses tipos de aplicativos, incluindo Office, Visual Studio e Microsoft Windows Media Player. Por exemplo, o suporte de adendos para o Microsoft Windows Media Player permitem terceiros criarem decodificados DVD e codificadores MP3.

O .NET Framework implementa as bases que permitem aplicativos permitirem adendos. Entretanto, o tempo e complexidade que é necessária para construir e suportar pode ser cara, considerando que um design de adendo robusto precisa lidar com o seguinte:

  • Detecção: Localizando suplementos aderem aos contratos de suporte a aplicativos de host.

  • Ativação: Carregando, execução e estabelecer comunicação com os suplementos.

  • Isolamento: Usando um aplicativo domínios ou processos para estabelecer limites de isolamento que protegem aplicativo s de possíveis problemas de segurança e a execução de suplementos.

  • Comunicação: Permitindo que os suplementos e hospedar aplicativos se comuniquem entre si através de limites de isolamento chamando métodos e passagem de dados.

  • Gerenciamento de tempo de vida: Carregar e descarregar domínios de aplicativos e processos de forma limpa e previsível (consulte Visão Geral Sobre Domínios de Aplicativos).

  • Controle de versão: Garantir que aplicativos de host e os suplementos podem se ainda comunicar quando novas versões de um são criadas.

Ao invés de fazer você resolver estes problemas, .NET Framework agora inclui um conjunto de tipos, localizados no namespace System.AddIn, que coletivamente são conhecidos como o "modelo de adendos". O modelo .NET Framework de adendo fornece funcionalidades para cada um dos comportamentos comuns de adendos listados acima.

Em algumas situações, porém, também pode ser desejável para permitir que o add-ins para integrar e ampliar hospedar aplicativos UIs. WPF Estende a .NET Framework Add - no modelo para ativar este suporte, que é criado em torno de exibição de um FrameworkElement pertencentes a um suplemento na UIs de um aplicativo host. Isto permite desenvolvedores WPF criar aplicações para suportar os seguintes cenários comuns:

  • Aplicações no estilo do Messenger que fornecem serviços adicionais com adendos de terceiros.

  • Aplicativos de jogos desenhados para hospedar jogos de terceiros.

  • Aplicativos de leitura de conteúdo que hospedam propagandas.

  • Aplicativos mashup que hospedam módulos arbitrários, por exemplo, o Sidebar do Windows.

E, adendos de WPF podem ser hospedados por tanto aplicativos autossuficientes e XBAPs.

Para obter mais informações, consulte Visão Geral dos Suplementos do Windows Presentation Foundation.

Suporte do Firefox para XBAPs

Um plug-in para o WPF 3.5 permite XBAPs ser executado do Firefox 2.0, uma funcionalidade que não é disponível no WPF 3.0. Recursos chave incluem o seguinte:

  • Se o Firefox 2.0 for seu navegador padrão, XBAPs respeitar a configuração. Ou seja, Internet Explorer não é usado para XBAPs Se Firefox 2.0 é o padrão.

  • O mesmo recurso de segurança disponíveis para XBAPs rodando no Internet Explorer são disponíveis para XBAPs rodando no Firefox 2.0, incluindo o encapsulamento de segurança de confiança parcial. Recursos de seguranças adicionais fornecidos pelo navegador são específicos de cada navegador.

Cookies

Aplicativos WPF autossuficientes e XBAPs podem criar, obter e deletar tanto sessões quanto cookies persistentes. No WPF 3.5, cookies persistentes podem ser compartilhados entre XBAPs, Servidores web e arquivos HTML que têm o mesmo site de origem.

Para obter mais informações sobre cookies, consulte Visão geral de navegação.

Aprimoramentos do IntelliSense Visual Studio

Agora você pode adicionar um novo elemento XAML usando o editor de Visual Studio XAML, dar a ele um nome (usando o atributo Name) e referir-se a ele a partir do código subjacente e exibir seus membros do IntelliSense Explorer.

Localização

WPF 3.5 adiciona suporte para os seguintes scripts:

  • Bengali

  • Devanagari

  • Gujarati

  • Gurmukhi

  • Kannada

  • Malaiala

  • Oriya

  • Tâmil

  • Telugu

Para obter mais informações, consulte Globalização para o Windows Presentation Foundation.

Editor de Método de Entrada (IME) Suporte para a caixa de texto

A classe FrameworkTextComposition agora tem as seguintes propriedades:

Um FrameworkTextComposition é usado como a propriedade TextCompositionEventArgs.TextComposition quando o usuário inserir texto em um TextBox usando um IME e um evento TextInput TextInputUpdate, ou TextInputStart ocorre.

Elementos gráficos

Agora você tem a capacidade de cachear imagens que são baixados por http para o cache local arquivo temporário Microsoft Internet Explorer para que as solicitações subsequentes da imagem venham do disco local, em vez da Internet. Dependendo dos tamanhos das imagens, isso pode ser uma melhoria de desempenho de rede significativos. Os seguintes membros foram adicionados para dar suporte a esse recurso:

O evento BitmapSource.DecodeFailed foi adicionado para notificá-lo quando uma imagem falha ao carregar, devido a um cabeçalho danificado.

Gráficos 3D

Os seguintes recursos novos foram adicionados para o modelo de objeto 3D.

Entrada, Foco e Suporte de Eventos em 3D

O modelo de objeto 3D agora oferece suporte aos conceitos de UIElement como entrada, o foco e eventos. As novas classes que fornecem esses serviços são UIElement3D e suas classes derivadas ContainerUIElement3D e ModelUIElement3D. Para exemplos, veja Exemplo de Sphere UIElement3D e Manipulação Eventos no exemplo 3-d.

Conteúdo interativo 2D em 3D

A nova classe Viewport2DVisual3D oferece o suporte para colocar conteúdo interativo 2D em um objeto 3D. Para um exemplo, consulte Interativo 2D no exemplo 3-d.

Novos serviços de transformação

As novas classes GeneralTransform3D, GeneralTransform2DTo3D e GeneralTransform3DTo2D permitem transformações entre Visual3D objetos e de 2D em 3D e vice-versa.

Ligação de Dados

Os seguintes aperfeiçoamentos foram feitos para associação de dados:

  • Um novo mecanismo de depuração facilita a depuração ligações de dados.

  • O modelo de dados permite validação na camada de negócios, fornecendo suporte para a interface IDataErrorInfo. Além, o modelo de validação agora oferece suporte usando a sintaxe da propriedade para definir regras de validação.

  • O modelo associação de dados agora suporta LINQ e XLINQ.

Novo Mecanismo de Depuração

Agora é mais fácil depurar ligações de dados. Você pode conjunto a propriedade anexada novo PresentationTraceSources.TraceLevel em um objeto relacionados à vinculação para receber informações sobre o status de uma ligação específica. PresentationTraceSources é uma classe estática na System.Diagnostics espaço para nome.

Suporte para IDataErrorInfo

O modelo validação de dados agora oferece suporte a interface IDataErrorInfo para permitir que um objeto de negócios determine a validade da entrada. A interface define um indexador que utiliza um nome de propriedade e retorna uma string. O regra de validação DataErrorValidationRule, que verifica para exceções retornadas pelo indexador, foi adicionada. Para um exemplo, consulte Exemplo de validação de camada comercial.

Sintaxe alternativo para validação de dados

O Binding e classes MultiBinding têm duas novas propriedades, ValidatesOnExceptions e ValidatesOnDataErrors. Essas duas propriedades fornecem uma alternativa à configuração ExceptionValidationRule ou DataErrorValidationRule no elemento de sintaxe.

Suporte de LINQ e XLINQ

Aperfeiçoamentos foram feitos para BindingListCollectionView para oferecer melhor suporte para ligação para uma coleção que é do tipo BindingList<T> e LINQ. O comportamento das associações de dados com um CollectionView sobre um IEnumerable também foi aprimorado para fornecer um melhor desempenho e melhor suporte para associações a resultados que são produzidos por LINQ. Para obter um exemplo LINQ, consulte Exemplo de consulta LINQ.

Além disso, o modelo de associação de dados também fornece suporte para XLINQ.

Controles

RichTextBox

O RichTextBox agora preserva objetos TextElement personalizados quando ele salva o TextElement e quando o TextElement participa nas operações de área de transferência. Esse comportamento é suportado pelas seguintes novas APIs:

O RichTextBox tem uma nova propriedade chamada IsDocumentEnabled. Quando IsDocumentEnabled é true, elementos de interface do usuário, tais como botões e hiperlinks, aceitam entrada do usuário.

TextBoxBase

TextBoxBase tem uma nova propriedade chamada UndoLimit, que especifica o número máximo de ações que o controle referencia.

SoundPlayerAction

SoundPlayerAction agora pode carregar arquivos de áudio que podem ser identificados pelo pacote relativo e absoluto do uniform resource identifiers (URIs):

  • Arquivos de recurso: arquivos de áudio com uma ação de compilação de Resource.

  • Arquivos de conteúdo: arquivos de áudio com uma ação de compilação de Content.

  • Site de arquivos de origem: arquivos de áudio com uma ação de compilação de None.

Accessors de Conjuntos Protegidos

Os assessores set das propriedades a seguir são agora protegidas ao invés de internas:

Documentos

FlowDocumentPageViewer, FlowDocumentScrollViewer, e FlowDocumentReader cada um possui uma nova propriedade pública chamada Selection. A propriedade obtém o TextSelection que representa o conteúdo selecionado no documento.

Anotações

A estrutura anotações agora expõe os recursos para anotações correspondentes com os respectivos objetos anotados. Uma nova interface, IAnchorInfo, foi adicionada. Além disso, um novo método, GetAnchorInfo, que retorna um objeto IAnchorInfo, foi adicionado à classe AnnotationHelper.

Essas novas adições permitem cenários em que você precisa para acessar o objeto ao qual o objeto de anotação é ancorado. Para um exemplo, consulte Visualizador de documento com anotações com o exemplo de painel de comentários.

Consulte também

Tarefas

Visualizador de documento com anotações com o exemplo de painel de comentários

Conceitos

Arquitetura do .NET Framework 3.5

O que há de novo no .NET Framework Versão 3,5

Visão geral de elementos gráficos 3D

Revisão de Associação de Dados

Visão geral de Anotações

Referência

SoundPlayerAction

BitmapImage