Compartilhar via


Notas sobre a versão do canal de pré-visualização para o SDK do Aplicativo Windows 1.4

Importante

O canal de preview não é compatível com o uso em ambientes de produção e os aplicativos que usam as versões de preview não podem ser publicados na Microsoft Store.

O canal de pré-visualização do SDK de Aplicativo do Windows com recursos de canal de pré-visualização nos últimos estágios de desenvolvimento. As versões de pré-visualização não incluem recursos experimentais e APIs, mas ainda podem estar sujeitas a alterações significativas antes da próxima versão estável.

Links importantes:

Versão de canal de pré-visualização mais recente:

Versão de canal estável mais recente:

Versão 1.4 versão prévia 2 (1.4.0-preview2)

Esta é a versão mais recente do canal de versão prévia da versão 1.4.

Em um SDK do Aplicativo Windows 1.3 existente (do canal estável), você pode atualizar seu pacote Nuget para 1.4.0-preview2 (confira a seção Atualizar um pacote em Instalar e gerenciar pacotes no Visual Studio usando o Gerenciador de Pacotes NuGet).

Para visualizar o runtime atualizado e o MSIX, confira Downloads mais recentes do SDK do Aplicativo Windows.

Ilhas XAML não são mais experimentais

As Ilhas XAML e a plataforma ContentIslands subjacente não são mais experimentais.

  • Atualmente, as Ilhas XAML são testadas apenas para uso em aplicativos C++. Esta versão não inclui elementos de encapsulamento convenientes para uso no WPF ou no WinForms.
  • DesktopWindowXamlSource e os tipos relacionados foram adicionados ao namespace Microsoft.UI.Xaml.Hosting para o XAML Islands. XamlRoot.ContentIslandEnvironment foi adicionado para ajudar a acessar as informações da Ilha subjacentes de um elemento.
  • Vários tipos novos foram apresentados nos namespaces Microsoft.UI.Content e Microsoft.UI.Input como suporte subjacente para Ilhas XAML ou para utilizar essa funcionalidade ContentIslands sem XAML.
  • Um novo DragDropManager (além dos tipos relacionados) foi adicionado ao namespace Microsoft.UI.Input.DragDrop para cenários de Ilhas.

Atualizações de ItemsView

A nova classe ItemsView que foi introduzida na versão 1.4-preview1 foi substancialmente atualizada com novas propriedades e uma nova classe de suporte.

  • O novo controle ItemsView exibe uma coleção de dados. O ItemsView é semelhante aos controles ListView e GridView, mas é criado utilizando os componentes ItemsRepeater, ScrollView, ItemContainer e ItemCollectionTransitionProvider. Ele oferece a capacidade exclusiva de conectar implementações personalizadas de Layout ou ItemCollectionTransitionProvider. Outra vantagem importante é a capacidade de alternar o layout em tempo real, preservando a seleção de itens. O controle ScrollView interno também oferece recursos que não estão disponíveis no controle ListView/GridViewdo ScrollViewer, como a capacidade de controlar a animação durante rolagens programáticas.
    • Uma nova propriedade ItemTransitionProvider em ItemsRepeater (e no novo controle ItemsView) permite que você especifique um objeto ItemCollectionTransitionProvider para controlar as animações de transição nesse controle. Um método CreateDefaultItemTransitionProvider também foi adicionado a Layout, o que permite que um objeto de layout forneça uma transição de fallback para acompanhá-lo, se você não fornecer uma explicitamente no controle ItemsView.
    • Uma nova propriedade IndexBasedLayoutOrientation em Layout em que a orientação do layout, se houver, dos itens é baseada em seu índice na coleção de origem. O valor padrão é IndexBasedLayoutOrientation.None. Os layouts personalizados definem essa propriedade chamando o novo método SetIndexBasedLayoutOrientation (protegido).
    • Uma nova propriedade VisibleRect em VirtualizingLayoutContext obtém o retângulo da janela de visualização visível dentro do FrameworkElement associado ao Layout. O método virtual VirtualizingLayoutContext.VisibleRectCore protegido pode ser substituído para fornecer o valor que será retornado da propriedade VisibleRect.
  • A nova classe LinedFlowLayout é normalmente utilizada para dispor os itens do controle de coleção ItemsView. É particularmente útil para exibir uma coleção de imagens. Ele faz isso dispondo-os da esquerda para a direita e de cima para baixo, em linhas de altura igual. As imagens preenchem uma linha horizontal e, em seguida, encapsulam em uma próxima linha. As imagens podem ser cortadas nas bordas esquerda e direita para caber em uma linha. Eles também podem ser expandidos horizontalmente e cortados nas bordas superior e inferior para preencher uma linha quando o modo de alongamento for empregado.

Novos recursos e atualizações de todo o WinAppSDK

  • Popup/FlyoutBase.IsConstrainedToRootBounds = false agora é suportado, permitindo que um pop-up/menu suspenso se estenda para fora dos limites da janela pai. Uma propriedade SystemBackdrop foi adicionada a esses tipos para dar suporte ao acrílico nesses popups sem restrições. Por padrão, os menus utilizam isso para ter o acrílico.
  • Closed, FrameworkClosed e IsClosed foram adicionados a DesktopAcrylicController e MicaController para melhorar o tratamento durante o desligamento de objetos/thread.
  • DesktopAcrylicController.Kind agora pode ser definido para escolher entre algumas aparências padrão de acrílico.
  • DispatcherQueue tem alguns novos eventos e auxiliares para facilitar o desligamento melhor organizado e para que os aplicativos que utilizam Ilhas executem facilmente um loop de eventos com suporte padrão.
  • InputNonClientPointerSource no namespace Microsoft.UI.Input pode ser utilizado em cenários personalizados da barra de título para definir regiões que não sejam da área do cliente. O código pode se registrar para eventos correspondentes, como eventos de passar o mouse e clicar nessas regiões.
  • AppWindow tem alguns novos auxiliares para obter e associar a um DispatcherQueue.
  • O novo evento TreeView.SelectionChanged permite que os desenvolvedores respondam quando o usuário ou o código por trás altera o conjunto de nós selecionados no controle TreeView.
  • O novo controle ScrollView fornece uma nova alternativa ao ScrollViewer. Esse novo controle é altamente alinhado em comportamento e API com o controle ScrollViewer existente, mas é baseado em InteractionTracker, tem novos recursos, como alterações de exibição orientadas por animação, e também foi projetado para garantir a funcionalidade completa de ItemsRepeater. Consulte Um problema mais flexível do ScrollViewer - Problema n.º 108 - microsoft/microsoft-ui-xaml (github.com) para obter mais detalhes. Vários novos tipos, incluindo ScrollPresenter, fazem parte do modelo ScrollView de modo geral.
  • O novo controle AnnotatedScrollBar amplia a funcionalidade de uma barra de rolagem regular, fornecendo uma maneira fácil de navegar por uma grande coleção de itens. Isso é feito por meio de um trilho clicável com rótulos que funcionam como marcadores. Ele também permite uma compreensão mais granular do conteúdo rolável, exibindo uma dica de ferramenta ao passar o mouse sobre o trilho clicável.

Novas APIs na versão 1.4.0-preview2

A versão 1.4-preview2 inclui as seguintes novas APIs em comparação com a versão 1.4-preview1 anterior:

Microsoft.UI
 
    ClosableNotifierHandler
    IClosableNotifier
Microsoft.UI.Composition.SystemBackdrops
 
    DesktopAcrylicController
        Closed
        FrameworkClosed
        IsClosed
        Kind
 
    DesktopAcrylicKind
    MicaController
        Closed
        FrameworkClosed
        IsClosed
Microsoft.UI.Content
 
    ContentCoordinateConverter
    ContentCoordinateRoundingMode
    ContentDeferral
    ContentEnvironmentSettingChangedEventArgs
    ContentEnvironmentStateChangedEventArgs
    ContentIsland
    ContentIslandAutomationProviderRequestedEventArgs
    ContentIslandEnvironment
    ContentIslandStateChangedEventArgs
    ContentLayoutDirection
    ContentSite
    ContentSiteEnvironment
    ContentSiteEnvironmentView
    ContentSiteRequestedStateChangedEventArgs
    ContentSiteView
    ContentSizePolicy
    DesktopChildSiteBridge
    DesktopSiteBridge
    IContentSiteBridge
Microsoft.UI.Dispatching
 
    DispatcherExitDeferral
    DispatcherQueue
        EnqueueEventLoopExit
        EnsureSystemDispatcherQueue
        FrameworkShutdownCompleted
        FrameworkShutdownStarting
        RunEventLoop
        RunEventLoop
 
    DispatcherQueueController
        ShutdownQueue
 
    DispatcherRunOptions
Microsoft.UI.Input
 
    CharacterReceivedEventArgs
    ContextMenuKeyEventArgs
    FocusChangedEventArgs
    InputActivationListener
        GetForIsland
 
    InputFocusChangedEventArgs
    InputFocusController
    InputKeyboardSource
        CharacterReceived
        ContextMenuKey
        GetCurrentKeyState
        GetForIsland
        GetKeyState
        KeyDown
        KeyUp
        SystemKeyDown
        SystemKeyUp
 
    InputNonClientPointerSource
    InputPointerSource
        GetForIsland
 
    InputPreTranslateKeyboardSource
    KeyEventArgs
    NonClientCaptionTappedEventArgs
    NonClientPointerEventArgs
    NonClientRegionKind
    NonClientRegionsChangedEventArgs
    PhysicalKeyStatus
    VirtualKeyStates
Microsoft.UI.Input.DragDrop
 
    DragDropManager
    DragDropModifiers
    DragInfo
    DragOperation
    DragUIContentMode
    DragUIOverride
    DropOperationTargetRequestedEventArgs
    IDropOperationTarget
Microsoft.UI.Windowing
 
    AppWindow
        AssociateWithDispatcherQueue
        Create
        DispatcherQueue
Microsoft.UI.Xaml
 
    XamlRoot
        ContentIslandEnvironment
Microsoft.UI.Xaml.Automation.Peers
 
    ItemsViewAutomationPeer
Microsoft.UI.Xaml.Controls
 
    AnnotatedScrollBar
    AnnotatedScrollBarDetailLabelRequestedEventArgs
    AnnotatedScrollBarLabel
    AnnotatedScrollBarScrollingEventArgs
    AnnotatedScrollBarScrollingEventKind
    IndexBasedLayoutOrientation
    ItemCollectionTransition
    ItemCollectionTransitionCompletedEventArgs
    ItemCollectionTransitionOperation
    ItemCollectionTransitionProgress
    ItemCollectionTransitionProvider
    ItemCollectionTransitionTriggers
    ItemsRepeater
        ItemTransitionProvider
        ItemTransitionProviderProperty
 
    ItemsView
    ItemsViewItemInvokedEventArgs
    ItemsViewSelectionChangedEventArgs
    ItemsViewSelectionMode
    Layout
        CreateDefaultItemTransitionProvider
        IndexBasedLayoutOrientation
        SetIndexBasedLayoutOrientation
 
    LinedFlowLayout
    LinedFlowLayoutItemCollectionTransitionProvider
    LinedFlowLayoutItemsInfoRequestedEventArgs
    LinedFlowLayoutItemsJustification
    LinedFlowLayoutItemsStretch
    ScrollingAnchorRequestedEventArgs
    ScrollingAnimationMode
    ScrollingBringingIntoViewEventArgs
    ScrollingChainMode
    ScrollingContentOrientation
    ScrollingInputKinds
    ScrollingInteractionState
    ScrollingRailMode
    ScrollingScrollAnimationStartingEventArgs
    ScrollingScrollBarVisibility
    ScrollingScrollCompletedEventArgs
    ScrollingScrollMode
    ScrollingScrollOptions
    ScrollingSnapPointsMode
    ScrollingZoomAnimationStartingEventArgs
    ScrollingZoomCompletedEventArgs
    ScrollingZoomMode
    ScrollingZoomOptions
    ScrollView
    TreeView
        SelectionChanged
 
    TreeViewSelectionChangedEventArgs
    VirtualizingLayoutContext
        VisibleRect
        VisibleRectCore
Microsoft.UI.Xaml.Controls.Primitives
 
    FlyoutBase
        SystemBackdrop
        SystemBackdropProperty
 
    IScrollController
    IScrollControllerPanningInfo
    Popup
        SystemBackdrop
        SystemBackdropProperty
 
    RepeatedScrollSnapPoint
    RepeatedZoomSnapPoint
    ScrollControllerAddScrollVelocityRequestedEventArgs
    ScrollControllerPanRequestedEventArgs
    ScrollControllerScrollByRequestedEventArgs
    ScrollControllerScrollToRequestedEventArgs
    ScrollPresenter
    ScrollSnapPoint
    ScrollSnapPointBase
    ScrollSnapPointsAlignment
    SnapPointBase
    ZoomSnapPoint
    ZoomSnapPointBase
Microsoft.UI.Xaml.Hosting
 
    DesktopWindowXamlSource
    DesktopWindowXamlSourceGotFocusEventArgs
    DesktopWindowXamlSourceTakeFocusRequestedEventArgs
    WindowsXamlManager
    XamlSourceFocusNavigationReason
    XamlSourceFocusNavigationRequest
    XamlSourceFocusNavigationResult

Versão 1.4 Preview 1 (1.4.0-preview1)

Esta é a versão mais recente do canal de preview para a versão 1.4.

Em um SDK do Aplicativo Windows 1.3 existente (do canal estável), você pode atualizar seu pacote Nuget para 1.4.0-preview1 (confira a seção Atualizar um pacote em Instalar e gerenciar pacotes no Visual Studio usando o Gerenciador de Pacotes NuGet).

Para visualizar o runtime atualizado e o MSIX, confira Downloads mais recentes do SDK do Aplicativo Windows.

Atualizações de widgets

Três novas interfaces foram adicionadas para os Provedores de Widget implementarem: IWidgetProvider2, IWidgetProviderAnalytics e IWidgetProviderErrors. IWidgetProvider2 permite que os provedores respondam à ação Personalizar invocada pelo usuário, que é idêntica à que está disponível para Widgets primários. As interfaces IWidgetProviderAnalytics e IWidgetProviderErrors são utilizadas pelos provedores para coletar a telemetria de seus widgets; os eventos de falha e a análise sobre os widgets são comunicados aos respectivos provedores de widgets. As classes WidgetCustomizationRequestedArgs, WidgetAnalyticsInfoReportedArgs e WidgetErrorInfoReportedArgs são utilizadas para comunicar informações relevantes para dar suporte a novas funcionalidades.

Novos recursos de todo o WinAppSDK

  • Uma nova classe ThemeSettings que permite que os aplicativos Win32 WinRT detectem quando a configuração de Alto Contraste do sistema foi alterada, de modo semelhante à classe AccessibilitySettings da UWP. Consulte a especificação da API ThemeSettings no GitHub para obter mais informações.
  • Agora. o Popup/FlyoutBase.ShouldConstrainToRootBounds é suportado para permitir que dicas de ferramentas, menus e outros pop-ups se estendam além dos limites da janela principal. O Preview 1 ainda não suporta totalmente ter acrílico ou outros SystemBackdrops em um pop-up/menu suspenso; as APIs adicionais e a implementação para isso serão incluídas na próxima versão 1.4.
  • AccessKeyManager.EnterDisplayMode é um novo método para exibir chaves de acesso para o elemento atualmente focado de uma raiz fornecida. As teclas de acesso estão no "modo de exibição" quando mostram uma dica de tecla para invocar um comando, como pressionar a tecla Alt no Paint para mostrar quais teclas correspondem a quais controles. Esse método permite a inserção programática no modo de exibição.
  • Application.ResourceManagerRequested fornece um mecanismo para fornecer um IResourceManager diferente para resolver URIs de recursos em cenários nos quais o ResourceManager padrão não funciona. Para obter mais informações, confira a especificação Application.ResourceManagerRequested API no GitHub.
  • Estamos introduzindo um novo controle de lista chamado ItemsView e uma classe ItemContainer concreta correspondente. ItemContainer é um contêiner leve com estados de seleção internos e recursos visuais, que pode facilmente encapsular o conteúdo desejado e ser utilizado com ItemsView para um cenário de controle de coleção. ItemsView ainda está marcado como experimental no Preview 1, mas será incluído na próxima versão 1.4.
  • A versão do SDK do WebView2 foi atualizada da 1661.34 para 1823.32.

Novas APIs na versão 1.4.0-preview1

A versão 1.4-preview1 inclui as seguintes novas APIs em comparação com a versão estável 1.3:

Microsoft.UI.System
 
    ThemeSettings
Microsoft.UI.Xaml
 
    Application
        ResourceManagerRequested
 
    ResourceManagerRequestedEventArgs
Microsoft.UI.Xaml.Automation.Peers
 
    ItemContainerAutomationPeer
Microsoft.UI.Xaml.Controls
 
    ItemContainer
Microsoft.UI.Xaml.Controls.Primitives
 
    CommandBarFlyoutCommandBar
        SystemBackdrop
        SystemBackdropProperty
Microsoft.UI.Xaml.Input
 
    AccessKeyManager
        EnterDisplayMode
Microsoft.Web.WebView2.Core
 
    CoreWebView2
        LaunchingExternalUriScheme
        MemoryUsageTargetLevel
 
    CoreWebView2File
    CoreWebView2LaunchingExternalUriSchemeEventArgs
    CoreWebView2MemoryUsageTargetLevel
    CoreWebView2PermissionKind
        WindowManagement
 
    CoreWebView2Profile
        CookieManager
        IsGeneralAutofillEnabled
        IsPasswordAutosaveEnabled
 
    CoreWebView2Settings
        IsReputationCheckingRequired
 
    CoreWebView2WebMessageReceivedEventArgs
        AdditionalObjects
Microsoft.Windows.Widgets.Providers
 
    IWidgetProvider2
    IWidgetProviderAnalytics
    IWidgetProviderErrors
    WidgetAnalyticsInfoReportedArgs
    WidgetCustomizationRequestedArgs
    WidgetErrorInfoReportedArgs