Apresentando o CTP de março de 2005: novidades do “Avalon”

Karsten Januszewski - Microsoft Corporation

Março de 2005

Aplica-se a:

CTP (Community Technical Preview) de março de 2005 do SDK do WinFX
Versão do CTP de fevereiro de 2005 do .NET Framework 2.0

Observação: o CTP de março de 2005 do Avalon e do Indigo está disponível para download para assinantes do MSDN (em inglês) em Tools, SDKs, DDKs | Platform Tools | WinFX SDK. Futuramente, o CTP de março será disponibilizado para o público em geral.

Resumo: em março de 2005, a Microsoft lançou um CTP do "Avalon", o novo subsistema de apresentação para Windows que unifica o desenvolvimento de documentos, elementos gráficos e aplicativos em uma plataforma comum. Neste artigo, apresentaremos um resumo de alguns dos novos recursos que fazem parte do CTP de março, bem como as alterações que foram feitas no "Avalon" desde o CTP de novembro de 2004. Este artigo também contém links para páginas em inglês (24 páginas impressas).

Baixe o código de exemplo que acompanha este artigo: AvalonMarchCTPWhatsNew.msi.

Nesta página

Introdução ao "Avalon"
CTP de março de 2005 do Avalon
SDK do WinFX
Explorando os novos recursos
Alterações significativas
O que está faltando nesta versão
Apêndice

Introdução ao "Avalon"

"Avalon" é o codinome do subsistema de apresentação unificado da Microsoft para Windows. Ele é formado por um mecanismo de exibição e uma estrutura de código gerenciado. O "Avalon" unifica a maneira como o Windows cria, exibe e manipula documentos, mídias e interfaces de usuário, o que permite que desenvolvedores e designers criem experiências de usuário com visual surpreendente e diferenciado que estreitem o vínculo com os clientes.

  • O mecanismo do "Avalon". O mecanismo do "Avalon" unifica a maneira como desenvolvedores e designers trabalham com documentos, mídias e interfaces de usuário, oferecendo um único tempo de execução para experiências com navegadores, aplicativos baseados em formulários, elementos gráficos, vídeos, áudios e documentos. O "Avalon" é baseado no DirectX, por isso ele pode usar todo o potencial do hardware gráfico presente nos computadores modernos, e sua engenharia permite explorar os futuros avanços de hardware. Por exemplo, o mecanismo de processamento baseado em vetor do "Avalon" permite que os aplicativos sejam dimensionados para aproveitar monitores com resolução ppp elevada, sem que seja necessário que o desenvolvedor ou o usuário trabalhe mais para isso. De modo semelhante, quando o "Avalon" detecta uma placa de vídeo com suporte à aceleração de hardware, ele se beneficia disso.

  • A estrutura do "Avalon". A estrutura do "Avalon" oferece soluções para mídia, design da interface do usuário e documentos que vão muito além das soluções que os desenvolvedores conhecem hoje em dia. O "Avalon" foi desenvolvido para ter extensibilidade. Isso permite que os desenvolvedores criem seus próprios controles no mecanismo do "Avalon" a partir do zero ou mediante a criação de subclasses de controles existentes. A parte central da estrutura do "Avalon" é formada por controles de formas, documentos, imagens, vídeo, animação, 3D e painéis, nos quais é possível inserir controles e conteúdo. Esses primitivos são a base para o desenvolvimentos de experiências de usuários da próxima geração.

  • XAML. O "Avalon" também introduz a XAML, uma linguagem de marcação usada para representar por declaração a interface do usuário de aplicativos Windows, melhorando as muitas ferramentas com as quais desenvolvedores e designers podem compor e reelaborar a interface do usuário. Para os desenvolvedores da Web, a linguagem XAML é um conhecido paradigma de descrição da interface do usuário. A XAML também permite separar o design da interface do usuário do código de base; com isso, desenvolvedores e designers podem trabalhar em conjunto.

Para desenvolvedores e designers, o "Avalon" oferece uma plataforma de interface do usuário unificada, que lhes permite conhecer um único paradigma com possibilidades infinitas de experiências com a interface do usuário. Para os desenvolvedores .NET, a estrutura será familiar e, em última análise, reduzirá o número de linhas de código necessárias para oferecer experiências de usuário interessantes. Para os designers, o "Avalon" oferece uma plataforma que remove os limites entre conteúdo, mídia e aplicativos. E o mais importante é que a engenharia do "Avalon" permite que desenvolvedores e designers trabalhem em conjunto e de modo sincronizado para que possam oferecer experiências diferenciadas e conectadas.

CTP de março de 2005 do Avalon

A equipe do "Avalon" está feliz por anunciar esta próxima iteração. Esta versão inclui vários recursos novos, muitos dos quais serão enumerados a seguir. E, para aqueles que trabalharam com o CTP de novembro de 2004, são várias as modificações. Este artigo abordará algumas dessas mudanças, mas não de forma detalhada.

Observação sobre CTPs

As compilações do CTP (Community Technical Preview) não passam pelos mesmos testes rigorosos que as versões beta. Enquanto as versões beta passam por testes e aprimoramentos de recursos de alto nível, os CTPs têm como objetivo expor aos desenvolvedores a última compilação em funcionamento. Portanto, os CTPs são software sem suporte e de pré-lançamento e, por isso, você deve tomar algumas precauções. Consulte o arquivo Leiame e os Guias de Instalação mais recentes antes de baixar ou instalar o software de pré-lançamento.

Instalando o "Avalon"

O "Avalon" requer que a versão do CTP de fevereiro do .NET Framework 2.0 (em inglês) esteja instalada.

Em termos de requisitos de hardware, esse CTP exige no mínimo um processador Pentium de 1 GHz com 256 MB de RAM. É altamente recomendável usar uma placa gráfica compatível com DirectX 9 (como ATI Radeon 9600, nVidia GeForce 4 ou superior). Os requisitos de hardware definitivos do "Avalon" ainda não foram anunciados.

SDK do WinFX

A distribuição desta versão é acompanhada de uma versão do SDK do WinFX (em inglês), que inclui documentação, ferramentas e exemplos para a criação de aplicativos gerenciados pelo "Avalon". Como esta é uma versão pré-beta provisória, a documentação está parcialmente incompleta e alguns exemplos podem apresentar falhas. Muitos dos novos recursos contidos nesse CTP não estão totalmente documentados no SDK. Espera-se que futuros artigos disponibilizados no MSDN complementem o SDK.

Esta versão também inclui suporte básico a ferramentas do Visual Studio 2005 para desenvolvimento com o "Avalon", incluindo modelos atualizados para a criação de aplicativos executados dentro e fora do navegador, além de controles do "Avalon". O IntelliSense é disponibilizado para código e marcação, e suporte para criação e depuração é oferecido junto com a ajuda integrada. Novamente, as notas da versão contêm informações sobre os componentes necessários e a ordem de instalação certa para que tudo seja feito da maneira correta.

Explorando os novos recursos

A lista a seguir não está completa, mas dá uma idéia de alguns dos avanços e dos novos recursos que fazem parte desta versão, com links para o SDK (onde você pode obter mais informações).

VisualBrush

VisualBrush é uma ferramenta poderosa com a qual você pode pintar uma árvore visual de elementos da interface do usuário em um elemento do "Avalon". Ela oferece um alto grau de reutilização de recursos visuais existentes do "Avalon". A diferença em relação à ferramenta DrawingBrush é que a VisualBrush preserva o layout. Um dos casos de uso mais interessantes da VisualBrush é a capacidade de capturar o conteúdo existente e preencher outra parte da árvore. Um ótimo exemplo disso é o tipo de funcionalidade do PowerPoint em que há uma pequena exibição do slide à esquerda do slide maior.

Veja a seguir um exemplo simples de como usar a ferramenta VisualBrush, que pinta um retângulo em uma tela contendo uma grade de retângulos.

<Page  
  xmlns="https://schemas.microsoft.com/winfx/avalon/2005"
  xmlns:x="https://schemas.microsoft.com/winfx/xaml/2005">
  <Rectangle Height="100" Width="100">
      <Rectangle.Fill>
        <VisualBrush Viewport="0,0,100,80" Viewbox="0,0,100,80" 
ViewportUnits="Absolute" Stretch="Fill" >
          <VisualBrush.Visual>
            <Canvas>
              <Grid Width="100" Height="80" >
                <RowDefinition Height="10"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="10"/>
                <Rectangle Grid.Row="0" Fill="Red"/>
                <Rectangle Grid.Row="1" Fill="Green"/>
                <Rectangle Grid.Row="2" Fill="Red"/>
              </Grid>
            </Canvas>
          </VisualBrush.Visual>
        </VisualBrush>
      </Rectangle.Fill>
    </Rectangle>
</Page>

Aa480168.avalonmarch2005ctp01(pt-br,MSDN.10).jpg

A VisualBrush pode ser utilizada para pintar superfícies 3D com elementos gráficos criados no ambiente 2D. Veja a seguir um exemplo simples da VisualBrush em uma pirâmide 3D:

<Page xmlns="https://schemas.microsoft.com/winfx/avalon/2005" 
   xmlns:x="https://schemas.microsoft.com/winfx/xaml/2005" >
   
<Grid Background="#333399">
<Grid.Resources>
  <MeshGeometry3D x:Key="PlaneMesh"
    Positions="-1 -1 -0.5  1 -1 -0.5  -1 1 -0.5  1 1 -0.5  0 0 1"
    Normals="-1 -1 1  1 -1 1  -1 1 1  1 1 1 0 0 1"
    TextureCoordinates="0 1  1 1  0 0  1 0  0.5 0.5 "
    TriangleIndices="0 4 2 2 4 3 4 1 3 0 1 4" />
</Grid.Resources>
<Viewport3D ID="myViewport3D" ClipToBounds="true" Height="480" Width="640" Focusable="true">
  <Viewport3D.Camera>
    <PerspectiveCamera  
      LookAtPoint="0,0,0"
      Position="0,0,5.0"
      Up="0,1,0"
      NearPlaneDistance="0.25"
      FarPlaneDistance="20"
      FieldOfView="60" >
    </PerspectiveCamera>
  </Viewport3D.Camera>
  <Viewport3D.Models >
  
  <AmbientLight Color="#FF0F0F0F" />
  <DirectionalLight Direction="1 1 -1" />
  <GeometryModel3D  Geometry="{PlaneMesh}" StatusOfNextUse="ChangeableReference" >
    <GeometryModel3D.Material>
      <BrushMaterial >
        <BrushMaterial.Brush>
    <VisualBrush Viewbox="0,0,100,100">
 <VisualBrush.Visual>
          <Grid Background="green">
            <StackPanel Width="200" Height="200" Background="yellow">
              <Button></Button>
              <TextFlow>This is some text.  Watch how it wraps around 
the 3d model. Notice how the text bends with the contours of the 3D 
mesh.</TextFlow>
            </StackPanel>
          </Grid>
       </VisualBrush.Visual>
    </VisualBrush>
        </BrushMaterial.Brush>
      </BrushMaterial>
    </GeometryModel3D.Material>
     </GeometryModel3D>
  </Viewport3D.Models>
</Viewport3D>
</Grid>
</Page>

Aa480168.avalonmarch2005ctp02(pt-br,MSDN.10).jpg

Rotation3D

Com o CTP de março, a execução de transformações de rotação em modelos 3D torna-se bem mais simples. Foi introduzida uma nova classe, chamada Rotation3D, que permite rotações. Complementando a classe Rotation3D, existem classes de animação para animações de rotação. Ainda é possível obter o comportamento "quaternion slerp" por meio de uma Rotation3DAnimation entre dois 3Ds de rotação; nesse caso, os pares Eixo/Ângulo são tratados como orientações ao estilo Quaternions.

Veja a seguir um exemplo, baseado no exemplo anterior, que gira o objeto 3D em uma janela e não em uma página:

<Window xmlns="https://schemas.microsoft.com/winfx/avalon/2005" 
   xmlns:x="https://schemas.microsoft.com/winfx/xaml/2005" >
   
   < Window.Storyboards>
   <ParallelTimeline>
    <SetterTimeline TargetID="myViewport3D"
      Path="(Viewport3D.Models).(Model3DGroup.Children)[2].(GeometryModel3D.Transform).(RotateTransform3D.Rotation).Angle">
      <DoubleAnimation From="0" To="360" Duration="0:0:5" RepeatBehavior="Forever" />
    </SetterTimeline>
    </ParallelTimeline>
   </ Window.Storyboards>
<Grid Background="#333399">
<Grid.Resources>
  <MeshGeometry3D x:Key="PlaneMesh"
    Positions="-1 -1 -0.5  1 -1 -0.5  -1 1 -0.5  1 1 -0.5  0 0 1"
    Normals="-1 -1 1  1 -1 1  -1 1 1  1 1 1 0 0 1"
    TextureCoordinates="0 1  1 1  0 0  1 0  0.5 0.5 "
    TriangleIndices="0 4 2 2 4 3 4 1 3 0 1 4" />
</Grid.Resources>
<Viewport3D ID="myViewport3D" ClipToBounds="true" Height="480" Width="640" Focusable="true">
  <Viewport3D.Camera>
    <PerspectiveCamera  
      LookAtPoint="0,0,0"
      Position="0,0,5.0"
      Up="0,1,0"
      NearPlaneDistance="0.25"
      FarPlaneDistance="20"
      FieldOfView="60" >
    </PerspectiveCamera>
  </Viewport3D.Camera>
  <Viewport3D.Models >
  
  <AmbientLight Color="#FF0F0F0F" />
  <DirectionalLight Direction="1 1 -1" />
  <GeometryModel3D  Geometry="{PlaneMesh}" StatusOfNextUse="ChangeableReference" >
    <GeometryModel3D.Material>
      <BrushMaterial >
        <BrushMaterial.Brush>
    <VisualBrush Viewbox="0,0,100,100">
 <VisualBrush.Visual>
          <Grid Background="green">
            <StackPanel Width="200" Height="200" Background="yellow">
              <Button></Button>
              <TextFlow>This is some text.  Watch how it wraps around 
the 3d model.</TextFlow>
            </StackPanel>
          </Grid>
       </VisualBrush.Visual>
    </VisualBrush>
        </BrushMaterial.Brush>
      </BrushMaterial>
    </GeometryModel3D.Material>
    <GeometryModel3D.Transform >
        <RotateTransform3D Center="0 0 0" >
          <RotateTransform3D.Rotation>
            <Rotation3D Axis="0 1 1" Angle="40" >
            </Rotation3D>
          </RotateTransform3D.Rotation>
        </RotateTransform3D>
    </GeometryModel3D.Transform>

  </GeometryModel3D>
  </Viewport3D.Models>
</Viewport3D>
</Grid>
</ Window >

Aa480168.avalonmarch2005ctp02a(pt-br,MSDN.10).jpg

Aa480168.avalonmarch2005ctp02b(pt-br,MSDN.10).jpg

Disparadores de eventos

Assim como os disparadores de propriedades, os disparadores de eventos permitem que ocorram ações quando eventos são acionados. Eles são particularmente úteis para iniciar animações baseadas em entradas do usuário. Este exemplo mostra como usar disparadores de eventos para iniciar uma animação com base nos eventos MouseEnter e MouseLeave:

<Canvas 
    xmlns="https://schemas.microsoft.com/winfx/avalon/2005"
    xmlns:x="https://schemas.microsoft.com/winfx/xaml/2005">
  <Canvas.Resources>
    <Style x:Key="sample">
      <Button Width="100" Height="30"/>
      <Style.VisualTriggers>
        <EventTrigger RoutedEvent="Mouse.MouseEnter">
          <EventTrigger.Actions>
            <BeginAction TargetId="enterStoryboard"/>
          </EventTrigger.Actions>
        </EventTrigger>
        <EventTrigger RoutedEvent="Mouse.MouseLeave">
          <EventTrigger.Actions>
            <BeginAction TargetId="exitStoryboard"/>
          </EventTrigger.Actions>
        </EventTrigger>
      </Style.VisualTriggers>
      <Style.Storyboards>
        <SetterTimeline ID="enterStoryboard" BeginTime="*null" Path="(Button.Width)">
          <DoubleAnimation To="300" Duration="0:0:2"/>
        </SetterTimeline>
        <SetterTimeline ID="exitStoryboard" BeginTime="*null" Path="(Button.Width)">
          <DoubleAnimation To="100" Duration="0:0:2"/>
        </SetterTimeline>
      </Style.Storyboards>
    </Style>
  </Canvas.Resources>
  <Button Style="{sample}" Canvas.Left="50" Canvas.Top="10">Grow!</Button>
  <Button Style="{sample}" Canvas.Left="50" Canvas.Top="60">Grow!</Button>
  <Button Style="{sample}" Canvas.Left="50" Canvas.Top="110">Grow!</Button>
  <Button Style="{sample}" Canvas.Left="50" Canvas.Top="160">Grow!</Button>
</Canvas>

Aa480168.avalonmarch2005ctp03(pt-br,MSDN.10).jpg

Nesta versão, deve-se considerar alguns fatores relacionados aos disparadores de eventos. O primeiro deles é que, neste CTP, EventTriggers só estão disponíveis em Styles, e não em Elements. Também vale observar que as animações de marcação de fora de Storyboards provavelmente serão removidas no futuro. É recomendável usar Storyboards para todas as animações de agora em diante. Ao escrever os EventTriggers dentro dos estilos, você precisará acessar elementos na VisualTree de Style. Por fim, no momento, a API não tem eventos "BecameClicked" e "BecameUnclicked"; portanto não é possível disparar Storyboards alternativos que dependem do estado Click de um controle. Isso será corrigido em versões futuras.

Novos controles

Toolbar e ToolBarTray. O controle Toolbar fornece um recipiente para um grupo de comandos ou controles. O controle ToolBarTray contém um conjunto de itens de barra de ferramentas. Toolbars deriva de HeaderItemsControl, assim como MenuItem. Este é um exemplo de uma bandeja de barra de ferramentas com algumas barras de ferramentas:

<Page  
  xmlns="https://schemas.microsoft.com/winfx/avalon/2005"
  xmlns:x="https://schemas.microsoft.com/winfx/xaml/2005">
  <ToolBarTray>
    <ToolBar>
      <Canvas  Width= "100" Height="100"  >
        <Rectangle  Width="50" Height="25" 
               Canvas.Top="50" Canvas.Left="25" Fill="Red" />
        <Rectangle  Width="20" Height="15" 
               Canvas.Top="35" Canvas.Left="35" Fill="Red" />
        <Ellipse  RadiusX="6" RadiusY="6" CenterX="37" CenterY="75" 
               Fill="Black" />
        <Ellipse  RadiusX="6" RadiusY="6" CenterX="62" CenterY="75" 
               Fill="Black" />
        <Ellipse  RadiusX="5" RadiusY="5" CenterX="75" CenterY="65" 
             Fill="Yellow" />
      </Canvas>
    </ToolBar>
    <ToolBar>
      <TextBlock FontSize="20">Some Text</TextBlock></ToolBar>
  </ToolBarTray>
</Page>

Aa480168.avalonmarch2005ctp04(pt-br,MSDN.10).jpg

Password Box. Esse controle fornece mascaramento quando o usuário digita dados confidenciais. Ele inclui propriedades, como PasswordChar, para especificar o caractere que é exibido ao usuário, e MaxLength, para limitar o tamanho. Esse controle tem o recurso adicional de armazenar a senha como System.Security.SecureString, de forma que o texto seja criptografado para manter a privacidade quando estiver sendo usado e seja excluído da memória do computador quando não for mais necessário.

Nova ferramenta: XAMLPad

O SDK do WinFX tem uma nova ferramenta, que pode ser encontrada no diretório /bin do SDK, chamada XAMLPad.exe. Essa ferramenta permite editar um arquivo XAML e ver os resultados em tempo real, não sendo mais necessário compilar o arquivo XAML para ver o efeito de uma alteração.

O modelo de segmentação do SDK

O modelo de segmentação passou por uma significativa revisão neste CTP. Ele passou do modelo de segmentação de aluguel para um modelo de segmentação "único" mais simples. Por isso, a classe UIContext não está mais disponível como um construtor para muitas classes. A classe Dispatcher substituiu grande parte da funcionalidade da classe UIContext.

Alterações significativas

Foram feitas várias mudanças nesta versão em relação ao CTP do Avalon de novembro de 2004. Embora não esteja completa, a lista a seguir inclui algumas das alterações mais importantes.

Alterações de XAML

Em primeiro lugar, foram feitas alterações no espaço para nome XML.

Sintaxe do CTP de novembro

<Window x:Class=" "
    xmlns="https://schemas.microsoft.com/2003/xaml" xmlns:x="Definition"

Sintaxe do CTP de março

< Window x:Class=" "
    xmlns="https://schemas.microsoft.com/winfx/avalon/2005"
    xmlns:x="https://schemas.microsoft.com/winfx/xaml/2005"
    >

Em segundo lugar, quando você criar um estilo que possa ser referenciado, use x:Key em vez de x:Name.

Sintaxe do CTP de novembro

<Style x:Name="myCanvasStyle">
         ...
</Style>

Sintaxe do CTP de março

<Style x:Key="myCanvasStyle">
         ...
</Style>

Em terceiro lugar, foi alterada a sintaxe de atributos para valores não literais, como estilos e classes. A antiga sintaxe continuará funcionando neste CTP, mas futuramente ela será descartada; por isso, recomendamos usar a nova sintaxe. Consulte o SDK para obter mais detalhes.

Sintaxe do CTP de novembro

Sintaxe do CTP de março

"*null"

"{x:Null}"

"*typeof(Button)"

"{x:Type Button}"

"*Class.Field"

"{x:Static Class.Field}"

"*Bind(Path=firstname)"

"{Bind Path=firstname}"

"{foo}"

"{StaticResource foo}"

"{foo}"

"{DynamicResource foo}"

"{*typeof(Button)}"

"{Resource {x:Type Button}}"

Layout

Esta versão inclui alterações significativas de layout. Veja a seguir uma lista de alguns dos principais pontos que você deve levar em consideração ao trabalhar com o novo modelo de layout.

  • FlowPanel foi substituído por StackPanel.

  • Pane foi substituído por Page.

  • GridPanel foi totalmente removido.

  • Muitas propriedades (Height, Width, Top, Bottom, etc.) agora são do tipo Double e não mais do tipo Length. Além disso, não é mais possível usar percentuais para definir propriedades relativas. Agora, para obter o efeito de 100%, defina as propriedades HorizontalAlignment e VerticalAlignment como Stretch.

  • O elemento Canvas não está mais relacionado ao layout implícito. Canvas é a superfície em que cada elemento filho deve declarar seu tamanho e sua posição exatos.

  • Dock Filling foi alterado, sendo que o valor "Fill" de enum foi removido e substituído pela propriedade booleana LastChildFill em DockPanel.

À medida que você trabalhar com o mecanismo de layout, perceberá muitas outras modificações na sintaxe e no comportamento.

Animação e controle de tempo

O sistema de animação e controle de tempo passou por uma revisão significativa. Essa revisão teve o objetivo de tornar o funcionamento e o uso desse sistema mais simples e de evitar conflito de propriedades. O funcionamento básico de linhas do tempo e animações foi modificado. Consulte o SDK para obter mais informações sobre o novo modo de funcionamento do sistema de animação e controle de tempo. Além disso, foram feitas alterações sintáticas importantes na API para torná-la mais simples.

Por exemplo, agora o tempo é representado como valores baseados em TimeSpan e não mais como valores de Time. Quando você criar animações em XAML, os valores de tempo das novas propriedades deverão ser especificados na marcação com o formato TimeSpan, que é "0:0:3" == 3 segundos.

Em relação a linhas do tempo, a classe atual Timeline foi substituída por ParallelTimeline em marcação e código. Agora Timeline é uma classe abstrata. O processo de criação de um TimelineClock a partir de um Timeline foi simplificado para chamar o método CreateClock.

Para obter mais informações sobre animação e storyboards, consulte Animation Overview e Storyboards Overview (em inglês).

XAML livre

O suporte para a ativação de "XAML livre" foi removido. Não é mais possível ir até um arquivo .XAML utilizando o navegador. No entanto, você ainda pode carregar o arquivo XAML em tempo de execução por meio do método Parser.LoadXAML().

De Changeable para Freezable

A classe Changeable foi modificada e agora é a classe Freezable. Freezable funciona de modo semelhante a Changeable, uma vez que fornece um mecanismo para simular a mutabilidade com objetos aparentemente imutáveis em situações em que você precisa modificar o objeto depois de ele ter sido usado (por exemplo, a alteração de uma cor do plano de fundo). A classe Changeable tinha uma propriedade importante chamada StatusOfNextUse, que assumiu uma enumeração de UseStatus, a qual foi removida. Consulte o tópico Freezable Objects Overview (em inglês) do SDK do WinFX para obter mais informações.

O que está faltando nesta versão

Mídia (áudio e vídeo) e impressão não foram incluídas nesta compilação. Entretanto, ambos serão habilitados em uma futura versão CTP. Algumas demonstrações que usam esses recursos não serão compiladas ou, em alguns casos, sua execução simplesmente apresentará falhas.

Apêndice

Novos tipos

A lista a seguir exibe todos os novos tipos que foram acrescentados aos espaços para nome System.Windows.*. Consulte o SDK para obter mais detalhes sobre estes novos tipos:

System.Windows.AlternativeExpressionStorageCallback
System.Windows.BaselineAlignment
System.Windows.Commands.RoutedCommand
System.Windows.Controls.ContextMenuService
System.Windows.Controls.ControlTemplate
System.Windows.Controls.DocumentViewer
System.Windows.Controls.ListBoxItem
System.Windows.Controls.Page
System.Windows.Controls.PasswordBox
System.Windows.Controls.Primitives.IScrollBarPanel
System.Windows.Controls.Primitives.PopupAnimation
System.Windows.Controls.Primitives.ScrollBarPanel
System.Windows.Controls.Primitives.ScrollEventArgs
System.Windows.Controls.Primitives.ScrollEventHandler
System.Windows.Controls.Primitives.ScrollEventType
System.Windows.Controls.Primitives.TextBoxBase
System.Windows.Controls.RichTextBox
System.Windows.Controls.TextBlock
System.Windows.Controls.ToolBar
System.Windows.Controls.ToolBarTray
System.Windows.Controls.ToolTipService
System.Windows.Data.CollectionView
System.Windows.Data.CompositeCollection
System.Windows.Data.ObservableCollection`1
System.Windows.Data.UpdateSourceExceptionFilterCallback
System.Windows.DataTrigger
System.Windows.DependencyPropertyKey
System.Windows.Documents.ColumnBreak
System.Windows.Documents.DocumentLayout
System.Windows.Documents.DocumentLayoutType
System.Windows.Documents.DocumentPageView
System.Windows.Documents.FixedBitmapSerializerService
System.Windows.Documents.FixedDocument
System.Windows.Documents.Floater
System.Windows.Documents.FloaterClear
System.Windows.Documents.FlowDocument
System.Windows.Documents.FrameworkRichTextComposition
System.Windows.Documents.GetPageCompletedEventArgs
System.Windows.Documents.GetPageCompletedEventHandler
System.Windows.Documents.GetPageForContentPositionCompletedEventArgs
System.Windows.Documents.GetPageForContentPositionCompletedEventHandler
System.Windows.Documents.Hyperlink
System.Windows.Documents.IDocumentPaginator
System.Windows.Documents.ListItem
System.Windows.Documents.PagesChangedEventArgs
System.Windows.Documents.PagesChangedEventHandler
System.Windows.Documents.PaginationProgressEventArgs
System.Windows.Documents.PaginationProgressEventHandler
System.Windows.Documents.TextChangeCollection
System.Windows.Documents.TextEffectResolver
System.Windows.Documents.TextEffectTarget
System.Windows.Documents.TextFlow
System.Windows.Documents.TextPointer
System.Windows.Documents.TextPointerContext
System.Windows.Documents.ZoomPercentageConverter
System.Windows.DynamicResourceExtension
System.Windows.EventSetter
System.Windows.EventTrigger
System.Windows.FrameworkTemplate
System.Windows.Freezable
System.Windows.FreezableHelper
System.Windows.IIdScope
System.Windows.Input.RawTextInputReport
System.Windows.Interop.HwndSourceParameters
System.Windows.LayoutPriority
System.Windows.Loc
System.Windows.Media.AlignmentX
System.Windows.Media.AlignmentY
System.Windows.Media.Animation.BeginAction
System.Windows.Media.Animation.ClockController
System.Windows.Media.Animation.ClockGroup
System.Windows.Media.Animation.DeactivateAction
System.Windows.Media.Animation.DiscreteRotation3DKeyFrame
System.Windows.Media.Animation.Duration
System.Windows.Media.Animation.DurationConverter
System.Windows.Media.Animation.KeyFrameRotation3DAnimation
System.Windows.Media.Animation.LinearRotation3DKeyFrame
System.Windows.Media.Animation.ParallelTimeline
System.Windows.Media.Animation.PauseAction
System.Windows.Media.Animation.ResumeAction
System.Windows.Media.Animation.ReverseAction
System.Windows.Media.Animation.Rotation3DAnimation
System.Windows.Media.Animation.Rotation3DAnimationBase
System.Windows.Media.Animation.Rotation3DKeyFrame
System.Windows.Media.Animation.Rotation3DKeyFrameCollection
System.Windows.Media.Animation.SeekAction
System.Windows.Media.Animation.SplineRotation3DKeyFrame
System.Windows.Media.Animation.TimelineAction
System.Windows.Media.Animation.TimelineGroup
System.Windows.Media.BitmapCacheOption
System.Windows.Media.BitmapCodecInfo
System.Windows.Media.BitmapCreateOptions
System.Windows.Media.BitmapDecoder
System.Windows.Media.BitmapDecoderBmp
System.Windows.Media.BitmapDecoderGif
System.Windows.Media.BitmapDecoderIcon
System.Windows.Media.BitmapDecoderInternal
System.Windows.Media.BitmapDecoderJpeg
System.Windows.Media.BitmapDecoderPng
System.Windows.Media.BitmapDecoderTiff
System.Windows.Media.BitmapDecoderWmp
System.Windows.Media.BitmapEncoder
System.Windows.Media.BitmapEncoderBmp
System.Windows.Media.BitmapEncoderGif
System.Windows.Media.BitmapEncoderInternal
System.Windows.Media.BitmapEncoderJpeg
System.Windows.Media.BitmapEncoderPng
System.Windows.Media.BitmapEncoderTiff
System.Windows.Media.BitmapImage
System.Windows.Media.BitmapImageSerializerService
System.Windows.Media.BitmapLoadCompletedEventHandler
System.Windows.Media.BitmapLoadProgressChangedEventArgs
System.Windows.Media.BitmapLoadProgressChangedEventHandler
System.Windows.Media.BitmapPalette
System.Windows.Media.BitmapPalettes
System.Windows.Media.BitmapSizeOptions
System.Windows.Media.BitmapSource
System.Windows.Media.BitmapSourceCollection
System.Windows.Media.BitmapSourceConverter
System.Windows.Media.BitmapVisualManager
System.Windows.Media.CaptureCompleteHandler
System.Windows.Media.CombinedGeometry
System.Windows.Media.DrawingCollection
System.Windows.Media.DrawingGroup
System.Windows.Media.GeometryDrawing
System.Windows.Media.GeometryGroup
System.Windows.Media.GlyphRunDrawing
System.Windows.Media.ImageDrawing
System.Windows.Media.Media3D.Rotation3D
System.Windows.Media.TextFormatting.CharacterHit
System.Windows.Media.TextFormatting.CharacterShapingProperties
System.Windows.Media.TextFormatting.GlyphShapingProperties
System.Windows.Media.TextFormatting.NumberCultureSource
System.Windows.Media.TextFormatting.NumberSubstitution
System.Windows.Media.TextFormatting.NumberSubstitutionMethod
System.Windows.Media.VideoDrawing
System.Windows.Media.VisualBrush
System.Windows.MultiDataTrigger
System.Windows.Navigation.NavigationService
System.Windows.Navigation.RequestNavigateEventArgs
System.Windows.Navigation.RequestNavigateEventHandler
System.Windows.RoutedEventHandlerInfo
System.Windows.Serialization.BitmapImageConverter
System.Windows.Serialization.IStyleConnector
System.Windows.Serialization.LiteralExtension
System.Windows.Serialization.Localization.BamlLocalizabilityResolver
System.Windows.Serialization.Localization.BamlLocalizableResource
System.Windows.Serialization.Localization.BamlLocalizationDictionary
System.Windows.Serialization.Localization.BamlLocalizationDictionaryEnumerator
System.Windows.Serialization.Localization.BamlLocalizationOptions
System.Windows.Serialization.Localization.BamlLocalizer
System.Windows.Serialization.Localization.ElementLocalizability
System.Windows.Serialization.MarkupExtension
System.Windows.Serialization.NullExtension
System.Windows.Serialization.SerializationMode
System.Windows.Serialization.StaticExtension
System.Windows.Serialization.TypeExtension
System.Windows.Serialization.XamlConstructorParametersEndNode
System.Windows.Serialization.XamlConstructorParametersStartNode
System.Windows.Serialization.XamlKeyElementEndNode
System.Windows.Serialization.XamlKeyElementStartNode
System.Windows.Serialization.XamlTemplateSerializer
System.Windows.Setter
System.Windows.SetterBase
System.Windows.SetterBaseCollection
System.Windows.StaticResourceExtension
System.Windows.StoryboardCollection
System.Windows.SystemFonts
System.Windows.TextAlignment
System.Windows.TextDecorationCollection
System.Windows.TextDecorationCollectionConverter
System.Windows.Threading.Dispatcher
System.Windows.Threading.DispatcherEventArgs
System.Windows.Threading.DispatcherExceptionEventArgs
System.Windows.Threading.DispatcherExceptionEventHandler
System.Windows.Threading.DispatcherExceptionFilterEventArgs
System.Windows.Threading.DispatcherExceptionFilterEventHandler
System.Windows.Threading.DispatcherFrame
System.Windows.Threading.DispatcherHookEventArgs
System.Windows.Threading.DispatcherHookEventHandler
System.Windows.Threading.DispatcherHooks
System.Windows.Threading.DispatcherObject
System.Windows.Threading.DispatcherOperation
System.Windows.Threading.DispatcherOperationCallback
System.Windows.Threading.DispatcherOperationStatus
System.Windows.Threading.DispatcherPriority
System.Windows.Threading.DispatcherTimer
System.Windows.Threading.PriorityRange
System.Windows.TriggerAction
System.Windows.TriggerActionCollection
System.Windows.TriggerCollection
System.Windows.TriggerInvalidatedEventArgs
System.Windows.TriggerInvalidatedEventHandler
System.Windows.VerticalAlignment

Tipos removidos

Muitos tipos foram descartados desde o CTP de novembro de 2004. A lista abaixo mostra os tipos do espaço para nome System.Windows.*:

System.Windows.Annotations.Anchoring.DataIdProcessor
System.Windows.Annotations.Anchoring.DynamicSelectionProcessor
System.Windows.Annotations.Anchoring.LocatorManager
System.Windows.Annotations.Anchoring.PathNode
System.Windows.Annotations.Anchoring.SelectionProcessor
System.Windows.Annotations.Anchoring.SubTreeProcessor
System.Windows.Annotations.Anchoring.TextFingerprintProcessor
System.Windows.Annotations.Anchoring.TextSelectionProcessor
System.Windows.Annotations.Anchoring.TreeNodeSelectionProcessor
System.Windows.Annotations.AnnotationPanel
System.Windows.Annotations.Component.IAttachedAnnotationComponent
System.Windows.Annotations.Storage.XmlFileStore
System.Windows.AVTempUIPermission
System.Windows.AVTUIPermissionFullScreen
System.Windows.AVTUIPermissionNewWindow
System.Windows.BamlLocalizationManager
System.Windows.BamlLocalizationOptions
System.Windows.BamlResourceDictionary
System.Windows.BamlResourceDictionaryEnumerator
System.Windows.Changeable
System.Windows.ChangeableHelper
System.Windows.Commands.Command
System.Windows.Commands.CommandInvokeEventArgs
System.Windows.Commands.CommandInvokeEventHandler
System.Windows.Commands.CommandLink
System.Windows.Commands.CommandLinkCollection
System.Windows.Commands.ICommandTarget
System.Windows.Commands.KeyBindingConverter
System.Windows.Commands.PenBinding
System.Windows.Commands.QueryStatusEventArgs
System.Windows.Commands.QueryStatusEventHandler
System.Windows.Commands.ReadOnlyCommandLinkCollection
System.Windows.Commands.StandardCommands
System.Windows.Commands.UICommandLink
System.Windows.Controls.ColumnStyle
System.Windows.Controls.ColumnStyles
System.Windows.Controls.ContentChangedDelegate
System.Windows.Controls.ContentChangedEventArgs
System.Windows.Controls.FlowOrientation
System.Windows.Controls.FlowPanel
System.Windows.Controls.GetPageCompletedEventArgs
System.Windows.Controls.GetPageCompletedEventHandler
System.Windows.Controls.GridPanel
System.Windows.Controls.ItemsView
System.Windows.Controls.ListItem
System.Windows.Controls.PaginationCompleteDelegate
System.Windows.Controls.PaginationCompleteEventArgs
System.Windows.Controls.PaginationProgressDelegate
System.Windows.Controls.PaginationProgressEventArgs
System.Windows.Controls.Pane
System.Windows.Controls.Primitives.PageElement
System.Windows.Controls.Primitives.PageSource
System.Windows.Controls.Primitives.ScrollArea
System.Windows.Controls.Primitives.ScrollBarPrimitive
System.Windows.Controls.RowStyle
System.Windows.Controls.RowStyles
System.Windows.Controls.Text
System.Windows.Data.DataListFilterCallback
System.Windows.Data.ExceptionFilterCallback
System.Windows.Data.ParameterCollection
System.Windows.Data.QueryCommand
System.Windows.Data.SqlCommandList
System.Windows.Data.SqlDataSource
System.Windows.Data.SqlDataSource+SqlDataSourceMode
System.Windows.Data.UIContextCollectionView
System.Windows.Documents.AdaptiveBox
System.Windows.Documents.AdaptiveMetricsContext
System.Windows.Documents.AdaptiveProperties
System.Windows.Documents.BlockElement
System.Windows.Documents.BreakRecord
System.Windows.Documents.CaptionedDrawing
System.Windows.Documents.ColumnPreference
System.Windows.Documents.ElementEdge
System.Windows.Documents.Emphasis
System.Windows.Documents.FixedImageSerializerService
System.Windows.Documents.FixedPanel
System.Windows.Documents.FlowRepresentation
System.Windows.Documents.Heading
System.Windows.Documents.IDocumentContentHost
System.Windows.Documents.IDocumentFormatter
System.Windows.Documents.IDocumentFormatterAsync
System.Windows.Documents.Illustration
System.Windows.Documents.InlineElement
System.Windows.Documents.ListElementItem
System.Windows.Documents.MeasurePageCompletedEventArgs
System.Windows.Documents.MeasurePageCompletedEventHandler
System.Windows.Documents.MilMetrics
System.Windows.Documents.Note
System.Windows.Documents.OrientedTextPosition
System.Windows.Documents.PageDescriptor
System.Windows.Documents.ReadingMetricsCache
System.Windows.Documents.Section
System.Windows.Documents.SmallCaps
System.Windows.Documents.TextContainer
System.Windows.Documents.TextContainerChangedEventArgs
System.Windows.Documents.TextContainerChanges
System.Windows.Documents.TextEditor
System.Windows.Documents.TextEffectSetter
System.Windows.Documents.TextHighlight
System.Windows.Documents.TextMultiHighlight
System.Windows.Documents.TextMultiRange
System.Windows.Documents.TextMultiRangeMovedEventArgs
System.Windows.Documents.TextMultiRangeMovedEventHandler
System.Windows.Documents.TextNavigator
System.Windows.Documents.TextPanel
System.Windows.Documents.TextPosition
System.Windows.Documents.TextRangeEnds
System.Windows.Documents.TextRangeMovedEventArgs
System.Windows.Documents.TextRangeMovedEventHandler
System.Windows.Documents.TextSymbolType
System.Windows.Documents.TextView
System.Windows.EmbeddedDialog
System.Windows.EmbeddedDialogPosition
System.Windows.FloatingBreak
System.Windows.FlowBehavior
System.Windows.Forms.Integration.ConversionType
System.Windows.Forms.Integration.ConvertToSystemDrawing
System.Windows.Forms.Integration.ConvertToSystemWindows
System.Windows.Forms.Integration.ElementHost
System.Windows.HorizontalLayoutAlignment
System.Windows.HwndDispatcher
System.Windows.Interop.GdiConverter
System.Windows.ITextEmbeddable
System.Windows.ITextHost
System.Windows.Length
System.Windows.LocalizableResource
System.Windows.Media.Animation.DiscreteLengthKeyFrame
System.Windows.Media.Animation.InteractiveController
System.Windows.Media.Animation.KeyFrameLengthAnimation
System.Windows.Media.Animation.LengthAnimation
System.Windows.Media.Animation.LengthAnimationBase
System.Windows.Media.Animation.LengthKeyFrame
System.Windows.Media.Animation.LengthKeyFrameCollection
System.Windows.Media.Animation.LinearLengthKeyFrame
System.Windows.Media.Animation.PathLengthAnimation
System.Windows.Media.Animation.SplineLengthKeyFrame
System.Windows.Media.GlyphProperties
System.Windows.Media.HorizontalAlignment
System.Windows.Media.HwndInterop
System.Windows.Media.HwndMode
System.Windows.Media.HwndType
System.Windows.Media.HwndVisual
System.Windows.Media.ImageAddins
System.Windows.Media.ImageCodecInfo
System.Windows.Media.ImageData
System.Windows.Media.ImageDataSerializerService
System.Windows.Media.ImageDecoder
System.Windows.Media.ImageDecoderBmp
System.Windows.Media.ImageDecoderGif
System.Windows.Media.ImageDecoderIcon
System.Windows.Media.ImageDecoderInternal
System.Windows.Media.ImageDecoderJpeg
System.Windows.Media.ImageDecoderPng
System.Windows.Media.ImageDecoderTiff
System.Windows.Media.ImageDecoderWmp
System.Windows.Media.ImageEffect
System.Windows.Media.ImageEffectBlur
System.Windows.Media.ImageEffectBrightnessContrast
System.Windows.Media.ImageEffectColorTransform
System.Windows.Media.ImageEffectFlipRotate
System.Windows.Media.ImageEffectFormat
System.Windows.Media.ImageEffectGammaCorrect
System.Windows.Media.ImageEffectGlow
System.Windows.Media.ImageEffectGrayscale
System.Windows.Media.ImageEffectNegate
System.Windows.Media.ImageEffectSharpen
System.Windows.Media.ImageEffectSource
System.Windows.Media.ImageEffectTint
System.Windows.Media.ImageEncoder
System.Windows.Media.ImageEncoderBmp
System.Windows.Media.ImageEncoderGif
System.Windows.Media.ImageEncoderInternal
System.Windows.Media.ImageEncoderJpeg
System.Windows.Media.ImageEncoderPng
System.Windows.Media.ImageEncoderTiff
System.Windows.Media.ImageEncoderWmp
System.Windows.Media.ImageExchangeID
System.Windows.Media.ImageExchangeMetadata
System.Windows.Media.ImageExchangeMetadataEnumerator
System.Windows.Media.ImageExchangeProperty
System.Windows.Media.ImageLoadCompletedEventHandler
System.Windows.Media.ImageLoadProgressChangedEventArgs
System.Windows.Media.ImageLoadProgressChangedEventHandler
System.Windows.Media.ImageMetadata
System.Windows.Media.ImageMetadataRational
System.Windows.Media.ImageMetadataUnsignedRational
System.Windows.Media.ImagePalette
System.Windows.Media.ImagePaletteType
System.Windows.Media.ImageSizeOptions
System.Windows.Media.ImageSource
System.Windows.Media.ImageSourceCollection
System.Windows.Media.ImageSourceConverter
System.Windows.Media.ImageVisualManager
System.Windows.Media.Media3D.BumpMap
System.Windows.Media.Media3D.ExponentialFog
System.Windows.Media.Media3D.Fog
System.Windows.Media.Media3D.LinearFog
System.Windows.Media.Media3D.ReflectionEnvironmentMap
System.Windows.Media.Media3D.RefractionEnvironmentMap
System.Windows.Media.Media3D.ShadingMode
System.Windows.Media.MediaSystem
System.Windows.Media.TextFormatting.TextRunCacheActions
System.Windows.Media.VerticalAlignment
System.Windows.Navigation.INavigator
System.Windows.Navigation.INavigatorService
System.Windows.Navigation.Journal
System.Windows.Navigation.JournalEntryUri
System.Windows.Navigation.NavigateEventArgs
System.Windows.Navigation.NavigateEventHandler
System.Windows.Navigation.NavigationErrorCancelEventArgs
System.Windows.Navigation.NavigationErrorCancelEventHandler
System.Windows.Serialization.CustomXamlDeserializer
System.Windows.Serialization.EventContext
System.Windows.Serialization.ExpressionSerializationMode
System.Windows.Serialization.ImageDataConverter
System.Windows.Serialization.RoutedEventContext
System.Windows.Serialization.SerializationAction
System.Windows.Serialization.SerializationErrorAction
System.Windows.Serialization.XamlBodySerializer
System.Windows.Serialization.XamlContentControlSerializer
System.Windows.Serialization.XamlContentPresenterSerializer
System.Windows.Serialization.XamlCustomizableSerializer
System.Windows.Serialization.XamlDesigner
System.Windows.Serialization.XamlItemCollectionSerializer
System.Windows.Serialization.XamlItemsControlSerializer
System.Windows.Serialization.XamlLengthSerializer
System.Windows.Serialization.XamlSpacingSerializer
System.Windows.Serialization.XamlThicknessSerializer
System.Windows.Spacing
System.Windows.SpacingConverter
System.Windows.SystemBrushes
System.Windows.SystemMetrics
System.Windows.TextDecorationsConverter
System.Windows.TrustManagement.AlertState
System.Windows.TrustManagement.ApplicationSecurityDescription
System.Windows.TrustManagement.CategoryAccessLevel
System.Windows.TrustManagement.CategoryMapperAttribute
System.Windows.TrustManagement.Configuration.AddResult
System.Windows.TrustManagement.Configuration.ElseIfStatement
System.Windows.TrustManagement.Configuration.ElseStatement
System.Windows.TrustManagement.Configuration.Evaluator
System.Windows.TrustManagement.Configuration.EvaluatorCollection
System.Windows.TrustManagement.Configuration.IfStatement
System.Windows.TrustManagement.Configuration.NamedPermissionSets
System.Windows.TrustManagement.Configuration.PermissionSetComparison
System.Windows.TrustManagement.Configuration.PrivacyEvaluator
System.Windows.TrustManagement.Configuration.Rule
System.Windows.TrustManagement.Configuration.Rules
System.Windows.TrustManagement.Configuration.SecurityTrustEvaluatorConfiguration
System.Windows.TrustManagement.Configuration.SignatureEvidence
System.Windows.TrustManagement.Configuration.TrustConsentContext
System.Windows.TrustManagement.Configuration.TrustHostInfo
System.Windows.TrustManagement.Configuration.TrustManagerConfiguration
System.Windows.TrustManagement.Configuration.TrustUIOverride
System.Windows.TrustManagement.Configuration.ZoneEvidence
System.Windows.TrustManagement.ICategoryMapperCreator
System.Windows.TrustManagement.ITrustEvaluator
System.Windows.TrustManagement.IWindowsTrustUI
System.Windows.TrustManagement.ObjectiveEvaluationState
System.Windows.TrustManagement.ObjectiveTrustResult
System.Windows.TrustManagement.ObjectiveTrustResultCollection
System.Windows.TrustManagement.PermissionCategorySet
System.Windows.TrustManagement.PermissionCategoryType
System.Windows.TrustManagement.ResourceConsumptionLevel
System.Windows.TrustManagement.ResourceLoader
System.Windows.TrustManagement.SubjectiveEvaluationState
System.Windows.TrustManagement.SubjectiveTrustResult
System.Windows.TrustManagement.SubjectiveTrustResultCollection
System.Windows.TrustManagement.TranslatePermissionToCategory
System.Windows.TrustManagement.TrustDialog
System.Windows.TrustManagement.TrustDialogResults
System.Windows.TrustManagement.TrustManager
System.Windows.TrustManagement.TrustManagerContext
System.Windows.TrustManagement.TrustManagerSettings
System.Windows.TrustManagement.TrustReport
System.Windows.TrustManagement.TrustResult
System.Windows.TrustManagement.TrustResult+ResultType
System.Windows.TrustManagement.TrustResultCollection
System.Windows.TrustManagement.TrustUIDialog
System.Windows.UnitType
System.Windows.VerticalBoxAlignment
System.Windows.VerticalLayoutAlignment
System.Windows.VisualTriggerCollection
System.Windows.Win32Dispatcher
System.Windows.Win32Msg
System.Windows.WrapStyle

© .