Notas sobre a versão do canal de preview para o SDK do Aplicativo Windows
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.
Esse canal de preview fornece uma preview do próximo lançamento estável. Pode haver alterações significativas na API entre uma determinada versão prévia do canal e a próxima versão estável. As versões do canal de visualização não incluem APIs experimentais.
Links importantes:
- Caso queira atualizar um aplicativo existente de uma versão mais antiga do SDK do Aplicativo Windows para uma versão mais recente, confira Atualizar projetos existentes para a versão mais recente do SDK do Aplicativo Windows.
- Para obter a documentação sobre versões de preview, confira Instalar ferramentas para canais experimentais e versão de preview do SDK do Aplicativo Windows.
Versão 1.5 Preview 1 (1.5.0-preview1)
Esta é a versão mais recente do canal de preview para a versão 1.5.
Em um SDK do Aplicativo Windows 1.4 existente (do canal estável), você pode atualizar seu pacote Nuget para 1.5.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 para o SDK do Aplicativo Windows.
Atualizações de tempo de execução e desligamento de Ilhas XAML
- Há uma distinção comportamental entre o WinAppSDK 1.4 e o WinAppSDK 1.5 para aplicativos baseados em Ilhas XAML quando a última janela Xaml é fechada em qualquer thread.
- No WinAppSDK 1.4, o tempo de execução de XAML sempre sai do loop de eventos do thread quando a última janela Xaml em um thread é fechada.
- No WinAppSDK 1.5:
- Se seu aplicativo for da área de trabalho WinUI, o comportamento padrão ainda será igual ao do WinAppSDK 1.4.
- Se você estiver usando Xaml para a API DesktopWindowXamlSource ("Ilhas XAML"), o comportamento padrão será que o Xaml não sairá automaticamente do loop de eventos do thread.
- Nos dois modos, é possível alterar esse comportamento definindo a propriedade
Application.DispatcherShutdownMode
.
- Para saber mais, consulte a documentação da propriedade
Application.DispatcherShutdownMode
quando disponível.
- Há uma distinção comportamental entre o WinAppSDK 1.4 e o WinAppSDK 1.5 para aplicativos baseados em Ilhas XAML na vida útil do tempo de execução de XAML:
- No WinAppSDK 1.4, o tempo de execução do Xaml será desligado em um thread se todos os objetos
WindowsXamlManager
eDesktopWindowXamlSource
em certo thread forem fechados ou desligados, ou a execuçãoDispatcherQueue
nesse thread for encerrada (o tempo de execução do Xaml será desligado durante o estágioDispatcherQueue.FrameworkShutdownStarting
). - No WinAppSDK 1.5, o tempo de execução do Xaml é desligado em um thread somente quando o DispatcherQueue em execução nesse thread é desligado (o tempo de execução do Xaml é desligado durante o estágio
DispatcherQueue.FrameworkShutdownStarting
). - Para obter mais informações, confira a documentação da classe
WindowsXamlManager
quando disponível.
- No WinAppSDK 1.4, o tempo de execução do Xaml será desligado em um thread se todos os objetos
Controle de mapas WinUI
A versão inicial do controle WinUI Maps
já está disponível! Esse controle é das plataformas WebView2 e Azure Mapas, fornecendo os seguintes recursos:
- Movimento panorâmico e ampliação com os botões do mapa ou toque.
- Alterar o estilo do mapa para exibição de satélite, terreno ou rua.
- Adicionar de forma programática pinos interativos com ícones personalizáveis pelo desenvolvedor ao mapa.
- Personalização do desenvolvedor para onde o mapa está centrado na carga inicial.
- Controle para desenvolvedores sobre ocultar ou mostrar os botões para movimento panorâmico, ampliação e estilos de mapa.
Observação
Para usar o controle Maps
, você precisará de uma chave do Azure Mapas. Para criar a chave, consulte a página de documentação do Azure Mapas para criar um aplicativo Web.
O controle Maps
é totalmente novo e agradecemos seus comentários para avaliar a direção futura!
Outros recursos novos do WinAppSDK
- Suporte adicionado para o modelo de implantação PublishSingleFile. Para saber mais sobre o PublishSingleFile, consulte a documentação de implantação de arquivo único.
Correções de bug
- Corrigido um problema da versão 1.5-experimental2 em que a DLL de projeção não era gerada. Para obter mais informações, confira o issue n.º 4152 do GitHub.
- Problema corrigido em que o botão de reticências no pop-up de formatação de texto do
RichEditBox
não exibia a lista de ações devidamente. Para obter mais informações, confira o issue n.º 9140 do GitHub. - Problema corrigido em que
ListView
não tratava adequadamente aceleradores de teclado. Para saber mais, confira o problema n.º 8063 do GitHub. - Problema corrigido de violação de acesso com o uso de
AccessKey
para fechar uma janela. Para obter mais informações, confira o issue n.º 8648 do GitHub. - Problema corrigido que afetava o alinhamento de texto em um
MenuFlyoutItem
em umMenuBar
. Para obter mais informações, confira o issue n.º 8755 do GitHub. - Problema corrigido em que o texto destacado não permanecia destacado ao clicar com o botão direito do mouse. Para obter mais informações, confira o issue n.º 1801 do GitHub.
- Problema corrigido que levava janelas inativas a travar o aplicativo quando fechado. Para obter mais informações, confira o issue n.º 8913 do GitHub.
- Problema corrigido que podia travar aplicativos ao rolar com o botão do meio do mouse e, logo depois, clicar com o botão esquerdo do mouse. Para obter mais informações, confira o issue n.º 9233 do GitHub.
Novas APIs na versão 1.5.0-preview1
A versão 1.5-preview1 inclui as seguintes novas APIs em comparação com a versão estável 1.4:
Microsoft.Graphics.DirectX
DirectXPixelFormat
A4B4G4R4
Microsoft.UI.Input
FocusNavigationReason
FocusNavigationRequest
FocusNavigationRequestEventArgs
FocusNavigationResult
InputFocusController
DepartFocus
NavigateFocusRequested
InputFocusNavigationHost
Microsoft.UI.Xaml
Application
DispatcherShutdownMode
DebugSettings
LayoutCycleDebugBreakLevel
LayoutCycleTracingLevel
DispatcherShutdownMode
LayoutCycleDebugBreakLevel
LayoutCycleTracingLevel
Microsoft.UI.Xaml.Controls
MapControl
MapControlMapServiceErrorOccurredEventArgs
MapElement
MapElementClickEventArgs
MapElementsLayer
MapIcon
MapLayer
SelectorBar
SelectorBarItem
SelectorBarSelectionChangedEventArgs
WebView2
EnsureCoreWebView2Async
EnsureCoreWebView2Async
Microsoft.UI.Xaml.Hosting
WindowsXamlManager
GetForCurrentThread
XamlShutdownCompletedOnThread
XamlShutdownCompletedOnThreadEventArgs
Microsoft.Web.WebView2.Core
CoreWebView2
FrameId
CoreWebView2AcceleratorKeyPressedEventArgs
IsBrowserAcceleratorKeyEnabled
CoreWebView2BrowserExtension
CoreWebView2BrowsingDataKinds
ServiceWorkers
CoreWebView2CustomSchemeRegistration
CoreWebView2CustomSchemeRegistration (String)
AllowedOrigins
SchemeName
CoreWebView2Environment
GetProcessExtendedInfosAsync
CoreWebView2EnvironmentOptions
AreBrowserExtensionsEnabled
CustomSchemeRegistrations
CoreWebView2Frame
FrameId
CoreWebView2FrameInfo
FrameId
FrameKind
ParentFrameInfo
CoreWebView2FrameKind
CoreWebView2MouseEventKind
NonClientRightButtonDown
NonClientRightButtonUp
CoreWebView2NavigationKind
CoreWebView2NavigationStartingEventArgs
NavigationKind
CoreWebView2NewWindowRequestedEventArgs
OriginalSourceFrameInfo
CoreWebView2ProcessExtendedInfo
CoreWebView2Profile
AddBrowserExtensionAsync
Delete
Deleted
Microsoft.Windows.Management.Deployment
AddPackageOptions
EnsureReadyOptions
PackageDeploymentContract
PackageDeploymentManager
PackageDeploymentProgress
PackageDeploymentProgressStatus
PackageDeploymentResult
PackageDeploymentStatus
PackageRuntimeManager
PackageSet
PackageSetItem
PackageSetItemRuntimeDisposition
PackageSetRuntimeDisposition
PackageVolume
ProvisionPackageOptions
RegisterPackageOptions
RemovePackageOptions
StagePackageOptions
StubPackageOption
Microsoft.Windows.Widgets.Feeds.Providers
CustomQueryParametersRequestedArgs
CustomQueryParametersUpdateOptions
FeedDisabledArgs
FeedEnabledArgs
FeedManager
FeedProviderDisabledArgs
FeedProviderEnabledArgs
FeedProviderInfo
IFeedManager
IFeedProvider
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 para o 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. OItemsView
é semelhante aos controlesListView
eGridView
, mas é criado utilizando os componentesItemsRepeater
,ScrollView
,ItemContainer
eItemCollectionTransitionProvider
. Ele oferece a capacidade exclusiva de conectar implementações personalizadas deLayout
ouItemCollectionTransitionProvider
. Outra vantagem importante é a capacidade de alternar o layout em tempo real, preservando a seleção de itens. O controleScrollView
interno também oferece recursos que não estão disponíveis no controleListView
/GridView
doScrollViewer
, como a capacidade de controlar a animação durante rolagens programáticas.- Uma nova propriedade
ItemTransitionProvider
emItemsRepeater
(e no novo controleItemsView
) permite que você especifique um objetoItemCollectionTransitionProvider
para controlar as animações de transição nesse controle. Um métodoCreateDefaultItemTransitionProvider
também foi adicionado aLayout
, 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 controleItemsView
. - Uma nova propriedade
IndexBasedLayoutOrientation
emLayout
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étodoSetIndexBasedLayoutOrientation
(protegido). - Uma nova propriedade
VisibleRect
emVirtualizingLayoutContext
obtém o retângulo da janela de visualização visível dentro doFrameworkElement
associado aoLayout
. O método virtualVirtualizingLayoutContext.VisibleRectCore
protegido pode ser substituído para fornecer o valor que será retornado da propriedadeVisibleRect
.
- Uma nova propriedade
- A nova classe
LinedFlowLayout
é normalmente utilizada para dispor os itens do controle de coleçãoItemsView
. É 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 propriedadeSystemBackdrop
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
eIsClosed
foram adicionados aDesktopAcrylicController
eMicaController
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 umDispatcherQueue
.- 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 controleTreeView
. - O novo controle
ScrollView
fornece uma nova alternativa aoScrollViewer
. Esse novo controle é altamente alinhado em comportamento e API com o controleScrollViewer
existente, mas é baseado emInteractionTracker
, tem novos recursos, como alterações de exibição orientadas por animação, e também foi projetado para garantir a funcionalidade completa deItemsRepeater
. 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, incluindoScrollPresenter
, fazem parte do modeloScrollView
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 para o 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 umIResourceManager
diferente para resolver URIs de recursos em cenários nos quais oResourceManager
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 classeItemContainer
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 comItemsView
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
Versão 1.3 Preview 1 (1.3.0-preview1)
Esta é a versão mais recente do canal de preview para a versão 1.3. Esta versão inclui visualizações de novos recursos no WinAppSDK e várias correções de bugs de desempenho, segurança, acessibilidade e confiabilidade.
Em um SDK do Aplicativo Windows 1.2 existente (do canal estável), você pode atualizar seu pacote Nuget para 1.3.0-preview1 (consulte 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, consulte Downloads para o SDK do Aplicativo Windows.
APIs de pano de fundo do XAML
Com propriedades internas na janela do XAML, os cenários do Mica tela de fundo acrílico são mais fáceis de usar em seu aplicativo WinUI 3. Consulte a especificação da API Xaml Backdrop no GitHub para obter mais informações sobre a propriedade Window.SystemBackdrop.
public MainWindow()
{
this.InitializeComponent();
this.SystemBackdrop = new MicaBackdrop();
}
Window.AppWindow
Substituindo várias linhas de código clichê, agora você pode usar as APIs do AppWindow diretamente de uma Janela por meio de Window.AppWindow
. Consulte a especificação da API Window.AppWindow no GitHub para obter informações adicionais sobre a tela de fundo e o uso.
Novos recursos do WinAppSDK
ApplicationModel.DynamicDependency
:PackageDependency.PackageGraphRevisionId
que substitui o MddGetGenerationId preterido.- Gerenciador de ambientes:
EnvironmentManager.AreChangesTracked
para informar se as alterações no gerenciador de ambiente podem ser controladas em seu aplicativo. Consulte as especificações da API de Gerenciamento de Ambiente no GitHub para obter mais informações. - MRT Core: um novo evento,
Application.ResourceManagerInitializing
permite que seu aplicativo forneça sua própria implementação da interfaceIResourceManager
e fornece acesso ao ResourceManager que o WinUI usa para resolver URIs de recursos. Confira a especificação da API IResourceManager no GitHub para obter mais informações. - Com o VSIX experimental mais recente, agora você pode converter seu aplicativo entre não empacotado e empacotado por meio do menu do Visual Studio em vez de no arquivo de projeto.
- Um novo evento,
DebugSettings.XamlResourceReferenceFailed
agora é gerado quando uma pesquisa Estática/ThemeResource referenciada não pode ser resolvida. Esse evento fornece acesso a um rastreamento que detalha onde a estrutura pesquisou essa chave para permitir depurar melhor as falhas de pesquisa estáticas ThemeResource. Para obter mais informações, confira as especificações da API e os issues 4972, 2350 e 6073 no GitHub. - Implantação: para gerenciar e reparar o runtime do aplicativo do Windows, agora
DeploymentRepairOptions
está disponível como parte doDeploymentManager
. Para obter mais informações, confira a seção Reparo das especificações da API de implantação no GitHub.
Problemas conhecidos
- O controle Pivotal causa uma falha de runtime com um erro de análise XAML. Confira o issue n° 8160 no GitHub para obter mais informações.
- Quando o menu suspenso DatePicker ou TimePicker é aberto, o aplicativo falha.
- As APIs
WindowsAppRuntime.ReleaseInfo
eWindowsAppRuntime.RuntimeInfo
APIs introduzidas nas versões 1.3 ainda não são suportadas, pois contêm um bug crítico.
Versão 1.2 Preview 2 (1.2.0-preview2)
Esta é a versão mais recente do canal de preview para a versão 1.2.
Em um SDK do Aplicativo Windows 1.1 existente (do canal estável), você pode atualizar seu pacote Nuget para 1.2.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 para o SDK do Aplicativo Windows.
Importante
O Visual Studio 2019 e o .NET 5 não têm mais suporte para a criação de aplicativos C# (confira SDK do Aplicativo Windows 1.2 migrando para o C# WinRT 2.0). Você precisará do Visual Studio 2022 e de uma das seguintes versões do SDK do .NET: 6.0.401 (ou posterior), 6.0.304, 6.0.109.
Para atualizar sua versão do SDK do .NET, instale a última versão do Visual Studio 2022 ou visite Downloads do .NET. Ao atualizar seu pacote NuGet sem a versão necessária do SDK do .NET, você visualizará um erro como: "Esta versão do WindowsAppSDK requer .NET 6+ e WinRT.Runtime.dll versão 2.0 ou superior". Para atualizar o projeto do .NET 5.0 para o .NET 6.0, abra o arquivo de projeto e altere "TargetFramework" para net6.0
e "Versão do sistema operacional de destino" para o valor apropriado (como net6.0-windows10.0.19041.0
).
Widgets de terceiros no Windows
O quadro de Widgets foi introduzido pela primeira vez no Windows 11 e estava limitado à exibição de widgets internos. Os widgets são pequenos contêineres de interface do usuário que exibem texto e elementos gráficos no quadro de widgets e estão associados a um aplicativo instalado no dispositivo. Com o SDK do Aplicativo Windows, como desenvolvedores de terceiros, agora você pode criar widgets para seus aplicativos do Win32 empacotados e testá-los localmente no quadro de widgets no Windows 11.
Para obter mais informações sobre widgets, confira Visão geral de widgets.
Para começar a desenvolver os widgets para seu aplicativo, confira os documentos de desenvolvimento de Provedores de serviços do widget e os Conceitos básicos de design de widgets para pré-requisitos, diretrizes e melhores práticas.
Os pré-requisitos para esta versão incluem:
- Modo de Desenvolvedor habilitado no computador de desenvolvimento.
- O computador de desenvolvimento está executando uma versão do Windows do Canal do Desenvolvedor do Programa Windows Insider (WIP) com a versão do quadro de widgets 521.20060.1205.0 ou superior.
Limitações conhecidas ao desenvolver widgets
- Os widgets de terceiros só podem ser testados localmente em dispositivos registrados no WIP para esta versão prévia. No SDK do Aplicativo Windows 1.2.0, os usuários em versões comerciais do Windows podem começar a adquirir Widgets 3P por meio de versões fornecidas do seu aplicativo pela Microsoft Store.
- Os widgets só podem ser criados para aplicativos do Win32 empacotados. Os widgets para PWA (Aplicativo Web Progressivo) têm suporte planejado como parte do Microsoft Edge 108.
Corte para aplicativos desenvolvidos com o .NET
Os desenvolvedores .NET agora podem publicar seus aplicativos WinAppSDK cortados. Com o CsWinRT 2.0, as projeções C#/WinRT distribuídas no WinAppSDK agora são aparáveis. Publicar seu aplicativo aparado pode reduzir o volume de disco do aplicativo ao remover qualquer código não utilizado dos binários aparados. Os aplicativos também podem observar uma melhoria no desempenho de inicialização. Com um aplicativo "Olá, Mundo" básico, observamos uma melhoria de cerca de 80% no volume de disco e uma melhoria de desempenho de inicialização de aproximadamente 7% quando publicado o formato aparado. Com a Galeria da WinUI, observamos uma melhoria de aproximadamente 45% no volume de disco.
Para obter mais detalhes sobre como habilitar a aparação, limitações de aparação (como reflexão em relação a tipos aparados) e aparar avisos, confira Aparar implantações autônomas e executáveis. Os desenvolvedores devem testar cuidadosamente seus aplicativos após a aparação para garantir que tudo funcione conforme o esperado. Para obter mais informações, confira o issue n.º 2478 no GitHub.
DisplayInformation
Agora, os aplicativos Win32 podem oferecer suporte ao Alto Alcance Dinâmico (HDR) por meio da classe DisplayInformation no WinAppSDK. A classe DisplayInformation permite monitorar informações relacionadas à exibição de um aplicativo. Isso inclui eventos para permitir que os clientes monitorem alterações na exibição do aplicativo que afetam a tela (ou as telas) na qual a exibição reside, bem como alterações em telas que podem afetar a exibição do aplicativo.
Issues corrigidos no WinUI 3
- O material de pano de fundo acrílico agora tem suporte em aplicativos Windows 10 por meio do DesktopAcrylicController. Para obter mais informações, confira o issue n.º 7112 no GitHub.
- Corrigido o issue que fazia com que App.UnhandledException falhasse ao ser roteado para o aplicativo. Para obter mais informações, confira o issue n.º 5221 no GitHub.
- Corrigido o problema que fazia com que os estilos de ListView regredissem e alterassem do WinAppSDK 1.1. Para obter mais informações, confira o issue n.º 7666 no GitHub.
Outras limitações e problemas conhecidos
Importante
Ao referenciar o WinAppSDK 1.2 de um projeto, é possível ver um erro semelhante a: "Downgrade de pacote detectado: Microsoft.Windows.SDK.BuildTools de 10.0.22621.1 para 10.0.22000.194.", que é causado por referências incompatíveis ao pacote do projeto de aplicativo e ao pacote WinAppSDK. Para resolver isso, atualize a referência no projeto para uma versão mais recente e compatível do Microsoft.Windows.SDK.BuildTools ou simplesmente remova a referência do deu projeto. Se você removê-la do seu projeto, uma versão compatível será implicitamente referenciada pelo pacote WinAppSDK.
- No momento, a criação com o Arm64 Visual Studio não tem suporte.
- Os padrões de inicializador automático da versão gratuita do WinRT desencaixada e com Bootstrapper são agora definidos apenas para projetos que produzem um executável (OutputType=Exe ou WinExe). Isso impede a adição de inicializadores automáticos em DLLs de biblioteca de classes e outros não executáveis por padrão.
- Caso precise de um inicializador automático em um não executável (por exemplo, uma DLL de teste carregada por um executável genérico que não inicializa o Bootstrapper), você poderá habilitar explicitamente um inicializador automático em seu projeto por meio de
<WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize>
ou<WindowsAppSdkUndockedRegFreeWinRTInitialize>true</WindowsAppSdkUndockedRegFreeWinRTInitialize>
.
- Caso precise de um inicializador automático em um não executável (por exemplo, uma DLL de teste carregada por um executável genérico que não inicializa o Bootstrapper), você poderá habilitar explicitamente um inicializador automático em seu projeto por meio de
- As APIs de informações de versão (ReleaseInfo e RuntimeInfo) podem ser chamadas, mas retornam a versão 0 (não as informações de versão reais).
Versão 1.2 Preview 1 (1.2.0-preview1)
Em um SDK do Aplicativo Windows 1.1 existente (do canal estável), você pode atualizar seu pacote Nuget para 1.2.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 para o SDK do Aplicativo Windows.
WinUI 3
Os aplicativos da WinUI 3 podem reproduzir áudio e vídeo com os controles de reprodução de mídia MediaPlayerElement e MediaTransportControls. Para obter mais informações sobre como e quando usar os controles de mídia, confira Players de mídia.
A WinUI 3 foi atualizada com os controles, estilos e comportamentos mais recentes da WinUI 2.8. Essas atualizações incluem a adição do controle InfoBadge, melhorias na acessibilidade e no modo de alto contraste, bem como correções de bugs nos controles. Para obter mais detalhes, confira as notas de versão para a WinUI 2.7 e WinUI 2.8.
Problema conhecido
ListView estilos regredidos e alterados do WinAppSDK 1.1.
Notificações
AppNotificationBuilder introduzido como uma alternativa ao conteúdo XML para criar e definir notificações de aplicativo.
Para obter informações de uso, confira a especificação do AppNotificationBuilder no GitHub.
Consulte também Início Rápido: notificações de aplicativo no SDK do Aplicativo Windows para obter um exemplo de como criar um aplicativo da área de trabalho do Windows que envia e recebe notificações de aplicativo local.
Alterações da falha
Para notificações por push, ao fazer uma chamada de solicitação de canal, os aplicativos precisarão usar a ID de Objeto do Azure em vez da ID do Aplicativo do Azure. Confira Início Rápido: notificação por push no SDK do Aplicativo Windows para obter detalhes sobre como localizar sua ID de Objeto do Azure.
Problema corrigido
O PushNotificationManager.IsSupported executará uma verificação para o modo elevado. Ele retornará false
se o aplicativo for elevado.
Limitações conhecidas (Notificações)
- Em AppNotificationScenario,
Urgent
só há suporte aos builds do Windows 19041 e posteriores. Use o AppNotificationBuilder.IsUrgentScenarioSupported para verificar se o recurso está disponível em runtime. - Em AppNotificationButton,
hint-toolTip
ehint-buttonStyle
só têm suporte aos builds 19041 e posteriores. Use o IsButtonStyleSupported e IsToolTipSupported para verificar se o recurso está disponível em runtime. - No MediaPlayerElement, quando usada na marcação do XAML para um aplicativo não empacotado, a propriedade Origem não pode ser definida com um URI ms-appx ou ms-resource. Como alternativa, defina Origem usando um URI de arquivo ou defina a partir do código.
Windowing
A personalização completa da barra de título agora está disponível no Windows 10, versão 1809 e posterior por meio da classe AppWindowTitleBar. Defina o AppWindowTitleBar.ExtendsContentIntoTitleBar como true
para estender o conteúdo na área da barra de título e SetDragRectangles para definir regiões de arrastar (além de outras opções de personalização).
Caso esteja usando a propriedade AppWindowTitleBar.IsCustomizationSupported para verificar se você pode chamar as APIs AppWindowTitleBar, ela agora retornará true
em versões do SDK do Aplicativo Windows para Windows 10 com suporte (1809 e posteriores).
Limitações conhecidas (janelas)
Não há suporte para personalizações simples da barra de título no Windows 10. Elas incluem Cor da tela de fundo, Cor da tela de fundo inativa, Cor do primeiro plano, Cor do primeiro plano inativo e Opções de exibição de ícone. Se chamar essas propriedades, elas serão ignoradas silenciosamente. Todas as outras APIs AppWindowTitleBar funcionam no Windows 10, versão 1809 e posteriores. Para as APIs de cores do botão de legenda (entre outras) e Altura, ExtendsContentIntoTitleBar devem ser definidas como true
, caso contrário, elas também serão ignoradas silenciosamente.
Controle de acesso
Foi apresentado o security.accesscontrol.h com a função GetSecurityDescriptorForAppContainerNames para facilitar e simplificar o compartilhamento de objetos nomeados entre processos empacotados e as APIs gerais do Win32. Esse método usa uma lista de PFNs (Nomes de Família de Pacotes) e máscaras de acesso e retorna um descritor de segurança. Para obter mais informações, confira a especificação do GetSecurityDescriptorForAppContainerNames no GitHub.
Outras limitações e problemas conhecidos
- Não há suporte para PublishSingleFile do .NET.
Versão 1.1 Preview 3 (1.1.0-preview3)
Esta é a versão mais recente do canal de preview para a versão 1.1. Ela oferece suporte a todos os recursos do canal de preview (confira Recursos disponíveis por canal de lançamento).
Em um aplicativo existente que usa o SDK do Aplicativo Windows 1.0, você pode atualizar seu pacote Nuget para 1.1.0-preview3 (confira a seção Atualizar um pacote em Instalar e gerenciar pacotes no Visual Studio usando o Gerenciador de Pacotes NuGet). Além disso, confira Downloads do SDK do Aplicativo Windows para obter o runtime atualizado e o MSIX.
Observação
Para desenvolvedores do C#, uma das seguintes versões do SDK do .NET (ou posterior) é necessária: 6.0.202, 6.0.104, 5.0.407 e 5.0.213. Para atualizar sua versão do SDK do .NET, visite os Downloads do .NET ou atualize para a última versão do Visual Studio. Sem a versão necessária do SDK do .NET, ao atualizar o pacote NuGet, você visualizará um erro como: "Esta versão do WindowsAppSDK requer o WinRT.Runtime.dll versão 1.6 ou superior".
Além de todos os recursos do Preview 2, as seções a seguir descrevem recursos novos e atualizados, limitações e problemas conhecidos desta versão.
WinUI 3
Mica e plano de fundo acrílico agora estão disponíveis para aplicativos da WinUI 3.
Para obter mais informações sobre esses materiais, confira os Materiais em Windows 11. Confira nosso código de exemplo para aplicar Mica em aplicativos C++ Usando um SystemBackdropController with WinUI 3 XAML e em aplicativos C# no GitHub como parte da Galeria de controles WinUI.
Notificações
Problemas corrigidos:
- Na 1.1.0-preview1 e 1.1.0-preview2, alguns aplicativos não empacotados terão visto seus ícones de aplicativo copiados incorretamente para AppData\LocalMicrosoftWindowsAppSDK. Para esta versão, eles serão copiados para AppData\Local\Microsoft\WindowsAppSDK. Para evitar o vazamento de ícones, você deve excluir manualmente o ícone do aplicativo no caminho incorreto após atualizar para a visualização 1.1.0-preview3.
- O ícone do aplicativo e a recuperação do nome de exibição do aplicativo para notificações do aplicativo por meio de Atalhos agora são suportados. Este ícone de aplicativo será priorizado sobre qualquer ícone especificado em arquivos de recursos.
- O suporte para notificações por push para aplicativos não empacotados foi restaurado (confira Limitações para exceções observadas). Introduzimos a API PushNotificationManager::IsSupported para verificar se seu aplicativo oferece suporte a notificações por push.
Limitações:
- Não há suporte para um aplicativo não empacotado elevado. O PushNotificationManager::IsSupported não executará uma verificação para o modo elevado. No entanto, estamos trabalhando para oferecer suporte a isso em uma versão futura.
Empacotamento MSIX
Aprimoramos o MSIX adicionando funcionalidades novas e ampliando as existentes por meio das categorias de extensão:
- windows.appExecutionAlias
- windows.customDesktopEventLog
- windows.dataShortcuts
- windows.fileTypeAssociation
- windows.fileTypeAssociation.iconHandler
- windows.folder
- windows.shortcut
Eles exigem que o pacote de estrutura de SDK do Aplicativo Windows seja instalado. Confira Downloads do SDK do Aplicativo Windows para instalar o runtime.
Gerenciador de ambiente
Conjunto de APIs que permite aos desenvolvedores adicionar, remover e modificar variáveis de ambiente sem precisar usar diretamente a API do Registro.
Esclarecimento da 1.1 Preview 1: A remoção automática de qualquer alteração de variável de ambiente quando um aplicativo que usou o gerenciador de ambiente é desinstalado só está disponível para aplicativos empacotados. Além disso, reverter alterações de variáveis de ambiente requer a instalação do pacote de estrutura do SDK do Aplicativo Windows, confira Downloads do SDK do Aplicativo Windows para o runtime.
Outras limitações conhecidas
Regressões do 1.1 Preview 2:
- Para aplicativos .NET que usam APIs MRT Core e aplicativos WinUI que não são implantados com MSIX de projeto único:
- Os arquivos RESW e de imagem que foram adicionados ao projeto como Itens Existentes e anteriormente incluídos automaticamente no PRIResource e no Content ItemGroups, respectivamente, não serão incluídos nesses ItemGroups. Como resultado, esses recursos não serão indexados durante a geração do PRI, portanto, não estarão disponíveis durante o runtime.
- Solução alternativa: inclua manualmente os recursos no arquivo de projeto e remova-os do None ItemGroup.
- Solução alternativa: quando disponível, atualize o SDK do .NET de seus aplicativos para 6.0.300. Consulte Requisitos de versão do SDK do .NET para obter informações adicionais.
- Os arquivos RESW e de imagem que foram adicionados ao projeto como Itens Existentes e anteriormente incluídos automaticamente no PRIResource e no Content ItemGroups, respectivamente, não serão incluídos nesses ItemGroups. Como resultado, esses recursos não serão indexados durante a geração do PRI, portanto, não estarão disponíveis durante o runtime.
- Para aplicativos .NET que não são implantados com MSIX de projeto único:
- Se um arquivo for adicionado ao Content ItemGroup duas vezes ou mais, haverá um erro de build.
- Solução alternativa: exclua a(s) inclusão(ões) duplicata(s) ou defina EnableDefaultContentItems como false no arquivo de projeto.
- Se um arquivo for adicionado ao Content ItemGroup duas vezes ou mais, haverá um erro de build.
Ambas as regressões serão restauradas na próxima versão estável.
Versão 1.1 Preview 2 (1.1.0-preview2)
Esta é a segunda versão do canal de preview para a versão 1.1. Ela oferece suporte a todos os recursos do canal de preview (confira Recursos disponíveis por canal de lançamento).
Em um aplicativo existente que usa o SDK do Aplicativo Windows 1.0, você pode atualizar seu pacote Nuget para 1.1.0-preview2 (confira a seção Atualizar um pacote em Instalar e gerenciar pacotes no Visual Studio usando o Gerenciador de Pacotes NuGet). Além disso, confira Downloads do SDK do Aplicativo Windows para obter o runtime atualizado e o MSIX.
Observação
Para desenvolvedores do C#, uma das seguintes versões do SDK do .NET (ou posterior) é necessária: 6.0.202, 6.0.104, 5.0.407 e 5.0.213. Para atualizar sua versão do SDK do .NET, visite os Downloads do .NET ou atualize para a última versão do Visual Studio. Sem a versão necessária do SDK do .NET, ao atualizar o pacote NuGet, você visualizará um erro como: "Esta versão do WindowsAppSDK requer o WinRT.Runtime.dll versão 1.6 ou superior".
Além de todos os recursos do Preview 1, as seções a seguir descrevem recursos novos e atualizados, limitações e problemas conhecidos desta versão.
Notificações
Problemas corrigidos:
- Um aplicativo sem identificador de pacote enviando notificações agora verá seu ícone de aplicativo na notificação se o ícone fizer parte do recurso do aplicativo. Se o recurso do aplicativo não tiver ícone, o ícone do aplicativo padrão do Windows será usado.
- Um aplicativo WinUI 3 que não está em execução agora pode ser ativado em segundo plano por meio de uma notificação.
Regressão da 1.1 Preview 1: suporte a notificações por push para aplicativos não empacotados. Espera-se que seja restaurado na próxima versão.
Limitações conhecidas:
- Introduzimos a API PushNotificationManager::IsSupported para verificar se os aplicativos independentes oferecem suporte a notificações por push. No entanto, essa API ainda não está funcionando como esperado, portanto, fique de olho na próxima versão de preview para obter suporte total da API IsSupported.
- Alguns aplicativos não empacotados verão seus ícones de aplicativo copiados incorretamente para AppData\LocalMicrosoftWindowsAppSDK. Para a próxima versão, eles serão copiados para AppData\Local\Microsoft\WindowsAppSDK. Para evitar o vazamento de ícones, o desenvolvedor deve excluir manualmente o ícone do aplicativo no caminho incorreto após a atualização para a próxima versão.
- Não há suporte para a recuperação de ícone e nome de exibição do aplicativo para notificações via Atalhos. Mas estamos trabalhando para apoiar isso em um lançamento futuro.
Implantação
Novos recursos:
- Os aplicativos empacotados agora podem forçar a implantação dos pacotes de runtime do SDK do Aplicativo Windows usando a API DeploymentManager.Initialize.
- Agora, a API do Bootstrapper inclui novas opções para melhorar a usabilidade e a solução de problemas. Para obter mais detalhes, confira Usar o runtime do SDK do aplicativo Windows para aplicativos empacotados com localização externa ou não empacotados e as informações avançadas sobre falha de inicialização do Bootstrap.
Limitações conhecidas:
- Há suporte para a implantação independente apenas no Windows 10, 1903 e posterior.
Janelas
Para facilitar o acesso de programação à funcionalidade implementada no USER32.dll
(confira Windows e mensagens), esta versão apresenta mais dessa funcionalidade no próprio AppWindow.
Novos recursos:
- Os aplicativos com janelas existentes têm mais controle sobre como uma janela é mostrada, chamando AppWindow.ShowOnceWithRequestedStartupState— o equivalente a
ShowWindow(SW_SHOWDEFAULT)
. - Os aplicativos podem mostrar, minimizar ou restaurar uma janela e especificar se a janela deve ser ativada ou não no momento em que a chamada é feita.
- Os aplicativos agora podem definir o tamanho da área de cliente de uma janela em coordenadas Win32.
- Adicionamos APIs para dar suporte ao gerenciamento de ordens z de janelas.
- Os aplicativos que desenham barras de título personalizadas com AppWindowTitleBar.ExtendsContentIntoTitleBar podem definir uma opção PreferredTitleBarHeight. Você pode escolher entre uma barra de título de altura standard ou uma barra de título alta que oferece mais espaço para conteúdo interativo. Confira Barra de título nas diretrizes do Fluent Design para obter conselhos sobre quando usar uma barra de título alta.
Limitações conhecidas:
- O suporte à barra de título alta está disponível apenas no Windows 11. Estamos trabalhando para reduzir essa API de versão anterior junto com outras APIs personalizadas da barra de título.
WinUI 3
Problemas corrigidos:
- Corrigido o problema que fazia com que aplicativos C# com WebView2 falhassem na inicialização quando o CRT (Runtime do C/C++) não estava instalado atualizando o SDK do WebView2 de 1020.46 para 1185.39.
- Corrigido o problema que fazia com que alguns cantos arredondados mostrassem um gradiente quando deveriam ser uma cor sólida. Para obter mais informações, confira os issues n.º 6076 e n.º 6194 no GitHub.
- Corrigido o problema em que os estilos atualizados estavam ausentes de generic.xaml.
- Correção do problema de ciclo de layout que fazia com que um aplicativo falhasse ao rolar até o final de um ListView. Para obter mais informações, confira o issue n.º 6218 no GitHub.
Desempenho
Os aplicativos C# têm várias melhorias de desempenho. Confira as notas sobre a versão C#/WinRT 1.6.1 para obter mais detalhes.
Versão 1.1 Preview 1 (1.1.0-preview1)
Esta é a primeira versão do canal de preview para a versão 1.1. Ela oferece suporte a todos os recursos do canal de preview (confira Recursos disponíveis por canal de lançamento).
Em um aplicativo existente que usa o SDK do Aplicativo Windows 1.0, você pode atualizar seu pacote Nuget para 1.1.0-preview1 (confira a seção Atualizar um pacote em Instalar e gerenciar pacotes no Visual Studio usando o Gerenciador de Pacotes NuGet). Além disso, confira Downloads do SDK do Aplicativo Windows para obter o runtime atualizado e o MSIX.
As seções a seguir descrevem os recursos novos e atualizados, as limitações e os problemas conhecidos para essa versão.
WinUI 3
Issue conhecido: os usuários não conseguem descartar um elemento quando o recurso arrastar e soltar está habilitado.
Suporte elevado (admin)
Usando o SDK do Aplicativo Windows 1.1 Preview 1, os aplicativos (incluindo o WinUI 3) poderão ser executados com privilégios elevados.
Limitações importantes
- No momento, disponível apenas no Windows 11. Mas estamos avaliando reduzir esse nível de suporte em uma versão posterior.
Problemas conhecidos
- Os aplicativos WinUI 3 travam ao arrastar um elemento durante uma interação de arrastar e soltar.
Implantação autocontida
O SDK do Aplicativo Windows 1.1 apresentará suporte para implantação independente. Nossa visão geral da implantação detalha as diferenças entre a implantação dependente da estrutura e a implantação independente e como começar.
Problemas conhecidos:
Um aplicativo C++ empacotado precisa adicionar o abaixo à parte inferior de seu arquivo de projeto para contornar um bug no arquivo autocontido
.targets
que remove referências de estrutura para VCLibs:<PropertyGroup> <IncludeGetResolvedSDKReferences>true</IncludeGetResolvedSDKReferences> </PropertyGroup> <Target Name="_RemoveFrameworkReferences" BeforeTargets="_ConvertItems;_CalculateInputsForGenerateCurrentProjectAppxManifest"> <ItemGroup> <FrameworkSdkReference Remove="@(FrameworkSdkReference)" Condition="'%(FrameworkSdkReference.SDKName)' == 'Microsoft.WindowsAppRuntime.1.1-preview1'" /> </ItemGroup> </Target>
Com suporte apenas no Windows 10, 1903 e posterior.
Notificações
Os desenvolvedores de aplicativos empacotados (incluindo empacotados com localização externa) e aplicativos não empacotados agora podem enviar notificações do Windows.
Novos recursos:
- Suporte para notificações de aplicativo para aplicativos empacotados e não empacotados. Detalhes completos sobre o GitHub
- Os desenvolvedores podem enviar notificações de aplicativo, também conhecidas como notificações do sistema, localmente ou de seu próprio serviço de nuvem.
- Suporte para notificação por push para aplicativos empacotados e não empacotados. Detalhes completos sobre o GitHub
- Os desenvolvedores podem enviar notificações brutas ou notificações de aplicativos do seu próprio serviço de nuvem.
Limitações:
- Os aplicativos publicados como independentes podem não ter suporte a notificações por push. Fique de olho na próxima versão de preview de uma API IsSupported para verificar se há suporte a notificações por push.
- Os aplicativos que não são empacotados enviando notificações de aplicativo não verão o ícone do aplicativo na notificação do aplicativo, a menos que sejam aplicativos de console. Os aplicativos de console que não são empacotados devem seguir os padrões mostrados no exemplo ToastNotificationsDemoApp.
- O runtime do SDK do Aplicativo Windows deve ser instalado para oferecer suporte a notificações por push, confira Downloads do SDK do Aplicativo Windows para o instalador.
- Um aplicativo WinUI 3 que não está em execução não pode ser ativado em segundo plano por meio de uma notificação. Mas estamos trabalhando para apoiar isso em um lançamento futuro.
Gerenciador de ambiente
Conjunto de APIs que permite aos desenvolvedores adicionar, remover e modificar variáveis de ambiente sem precisar usar diretamente a API do Registro.
Novos recursos
- Fornece a remoção automática de quaisquer alterações de variáveis de ambiente quando um aplicativo que usava o gerenciador de ambiente é desinstalado.
Limitações
- Atualmente indisponível em aplicativos C#. Mas estamos avaliando trazer esse recurso para aplicativos C# em uma versão posterior.
Outras limitações e problemas conhecidos
- Se você estiver usando C# com 1.1.0 Preview 1, deverá usar uma das seguintes versões do SDK do .NET no mínimo: .NET SDK 6.0.201, 6.0.103, 5.0.212 ou 5.0.406. Para atualizar seu SDK do .NET, você pode atualizar para a última versão do Visual Studio ou visitar Download .NET.
Versão 1.0 Preview 3 (1.0.0-preview3)
O Preview 3 é a versão mais recente do canal de preview da versão 1.0 do SDK do Aplicativo Windows. O Preview 3 suporta todos os recursos do canal de visualização.
Fazer download de 1.0 Preview 3 extensões do Visual Studio (VSIX)
Observação
Caso tenha o VSIX (extensões de SDK do Aplicativo Windows do Visual Studio) já instalada, desinstale-as antes de instalar uma nova versão. Para obter instruções, confira Gerenciar extensões para o Visual Studio.
Na tabela abaixo, você pode fazer download das extensões do Visual Studio (VSIX) para a versão 1.0 Preview 3. Para obter todas as versões, confira Downloads para o SDK do Aplicativo Windows. Se você ainda não tiver feito isso, comece configurando seu ambiente de desenvolvimento, usando as etapas em Ferramentas de instalação para o SDK do Aplicativo Windows.
As extensões abaixo são personalizadas para sua linguagem de programação e versão do Visual Studio.
1.0 Preview 3 downloads | Descrição |
---|---|
Extensão do Visual Studio 2019 para C# | Crie aplicativos C# com a extensão do SDK do Aplicativo Windows Visual Studio 2019. |
Extensão do Visual Studio 2019 para C++ | Crie aplicativos C++ com a extensão do SDK do Aplicativo Windows Visual Studio 2019. |
Extensão do Visual Studio 2022 para C# | Crie aplicativos C# com a extensão do SDK do Aplicativo Windows Visual Studio 2022. |
Extensão do Visual Studio 2022 para C++ | Crie aplicativos C++ com a extensão do SDK do Aplicativo Windows Visual Studio 2022. |
O .exe instalador e os pacotes MSIX |
Implante o SDK do Aplicativo Windows com seu aplicativo usando o instalador .exe e os pacotes MSIX. |
As seções a seguir descrevem recursos novos e atualizados, limitações e issues conhecidos para 1.0 Preview 3.
WinUI 3
Agora oferecemos suporte à implantação de aplicativos WinUI 3 sem empacotamento MSIX. Consulte Criar seu primeiro projeto WinUI 3 para configurar seu aplicativo WinUI 3 para oferecer suporte à implantação não empacotada.
Limitações importantes
- Aplicativos WinUI 3 não empacotados são suportados somente nas versões 1909 e posteriores do Windows.
- Aplicativos WinUI 3 não empacotados são suportados em x86 e x64, e o suporte a arm64 será adicionado na próxima versão estável.
- Ferramentas de empacotamento MSIX de projeto único para o Visual Studio 2019 ou o Visual Studio 2022 são necessárias para aplicativos não empacotados.
- Em um aplicativo não empacotado, você pode receber uma solicitação para instalar o .NET 3.5; se você fizer isso, então você pode ignorá-lo.
- Algumas APIs não são suportadas atualmente em aplicativos não empacotados. Nosso objetivo é corrigir isso na próxima versão estável. Alguns exemplos:
- ApplicationData
- StorageFile.GetFileFromApplicationUriAsync
- ApiInformation (sem suporte no Windows 10)
- Package.Current
- Os controles ListView, CalendarView e GridView estão usando os estilos incorretos, e pretendemos corrigir isso na próxima versão estável.
Para obter mais informações ou para começar a desenvolver com o WinUI 3, confira:
Outras limitações e problemas conhecidos
Não há suporte para aplicativos não empacotados no Windows 10 versão 1809. Nosso objetivo é corrigir isso na próxima versão no canal estável.
O aplicativo MSIX de projeto único em C# não será compilado se as Ferramentas UWP do C++ não estiverem instaladas. Se você tiver um projeto MSIX de projeto único em C#, precisará instalar o componente opcional Ferramentas C++ (v14x) da Plataforma Universal do Windows.
Esta versão apresenta os modelos de projeto Aplicativo em Branco, Empacotado (WinUI 3 na Área de Trabalho) para C# e C++. Esses modelos permitem que você crie seu aplicativo em um pacote MSIX sem o uso de um projeto de empacotamento separado (confira Empacotar seu aplicativo usando MSIX de projeto único). Esses modelos têm alguns issues conhecidos nesta versão:
Item de menu Publicar ausente até reiniciar o Visual Studio. Ao criar um aplicativo no Visual Studio 2019 e no Visual Studio 2022 usando o modelo de projeto Aplicativo em branco empacotado (WinUI 3 na Área de Trabalho), o comando para publicar o projeto não aparece no menu até você fechar e reabrir o Visual Estúdio.
Erro ao adicionar referências de projeto de biblioteca estática/dinâmica C++ a aplicativos C++ usando o Empacotamento MSIX de projeto único. Visual Studio exibe um erro que o projeto não pode ser adicionado como referência porque os tipos de projeto não são compatíveis.
Erro ao fazer referência a um controle de usuário personalizado em um projeto de biblioteca de classes. O aplicativo falhará com o erro de que o sistema não consegue encontrar o caminho especificado.
Modelo C# ou C++ para Visual Studio 2019. Ao tentar criar o projeto, você encontrará o erro "O projeto não sabe como executar o nome do projeto de perfil". Para resolver esse Issue, instale a extensão de ferramentas de empacotamento MSIX de projeto único.
Modelo C# para Visual Studio 2019 e Visual Studio 2022. No Visual Studio, quando você inicia a depuração ou inicia sem depuração, se seu aplicativo não for implantado e executado (e não houver feedback do Visual Studio), clique no nó do projeto no Gerenciador de Soluções para selecioná-lo e tente novamente.
Modelo C# para Visual Studio 2019 e Visual Studio 2022. Você encontrará o seguinte erro ao tentar executar ou depurar seu projeto no computador de desenvolvimento: "O projeto precisa ser implantado antes de podermos depurar. Habilite Implantar no Configuration Manager." Para resolver esse issue, habilite a implantação para seu projeto no Configuration Manager. Confira Criar seu primeiro projeto da WinUI 3 para obter instruções.
Modelo C++ para Visual Studio 2022 versão 17.0 versões até Preview 4. Você encontrará o seguinte erro na primeira vez que tentar executar seu projeto: "Houve erros de implantação". Para resolver esse issue, execute ou implante seu projeto uma segunda vez. Esse issue será corrigido no Visual Studio 2022 versão 17.0 Preview 7.
Sem suporte para qualquer configuração de build de CPU: ao adicionar o SDK do Aplicativo Windows a um aplicativo ou componente do .NET existente que dê suporte a Qualquer CPU, especifique a arquitetura desejada:
x86
,x64
ouarm64
.Os projetos C# que usam a versão 1.0 do Preview 3 devem usar o seguinte SDK do .NET: SDK do .NET 6 ou posterior (confira Fazer download do .NET e o .NET 5 chegará ao fim do suporte em 10 de maio de 2022).
Uma alternativa ao DispatcherQueue.TryEnqueue (para retomar a execução no thread da fila do dispatcher) é usar a função auxiliar resume_foreground na WIL (Biblioteca de Implementação do Windows):
- Adicione uma referência ao seu projeto ao pacote NuGet Microsoft.Windows.ImplementationLibrary.
- Adicione
#include <wil/cppwinrt_helpers.h>
ao seupch.h
. - Adicione
#include <winrt/Microsoft.UI.Dispatching.h>
ao seupch.h
. - Agora
co_await wil::resume_foreground(your_dispatcherqueue);
.
Issue importante que afeta o 1.0 Preview 1 e o Preview 2
A versão 1.0 Preview 1 e Preview 2 do SDK do Aplicativo Windows inclui um mecanismo para limpar quaisquer alterações de variáveis de ambiente feitas por um aplicativo empacotado quando esse aplicativo é desinstalado. Esse recurso está em um estado experimental e a primeira versão inclui um bug conhecido que pode corromper a variável de ambiente PATH do sistema.
A Preview 1 e a Preview 2 corrompem qualquer variável de ambiente PATH que contenha o caractere de expansão %
. Isso acontece sempre que qualquer aplicativo empacotado é desinstalado, independentemente de esse aplicativo usar o SDK do Aplicativo Windows.
Confira também o issue de dano de variável de ambiente PATH.
Detalhes
A entrada PATH do sistema é armazenada no valor Path na seguinte chave no Registro do Windows:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Se você iniciar o Editor do Registro (regedit.exe
), poderá copiar e colar o caminho acima na barra de trilha (imediatamente abaixo da barra de menus) e pressionar Enter para localizar a chave.
O valor Path dessa chave deve ser do tipo REG_EXPAND_SZ, mas o bug o altera para REG_SZ. E isso torna a variável de ambiente PATH do sistema inutilizável se ela contiver o caractere de expansão da variável %
.
Versões afetadas
- SDK do Aplicativo Windows 1.0 Preview 1 (1.0.0-preview1)
- SDK do Aplicativo Windows 1.0 Preview 2 (1.0.0-preview2)
Mitigação
Para colocar suo computador de volta em um bom estado, execute as seguintes etapas:
Verifique se o PATH no Registro está corrompido e, em caso afirmativo, redefina-o executando o script abaixo.
Você pode realizar a etapa 1 com o seguinte script do Windows PowerShell (o PowerShell Core não funcionará). Execute-o elevado.
# This script must be run from an elevated Windows PowerShell # window (right-click Windows PowerShell in the Start menu, # and select Run as Administrator). # If the PATH in the Registry has been set to REG_SZ, then delete # it, and recreate it as REG_EXPAND_SZ. $EnvPath = 'Registry::HKLM\System\CurrentControlSet\Control\Session Manager\Environment' $Environment=Get-Item $EnvPath $PathKind = $Environment.GetValueKind('Path') if ($PathKind -ne 'ExpandString') { $Path = $Environment.GetValue('Path') Remove-ItemProperty $EnvPath -Name Path New-ItemProperty $EnvPath -Name Path -PropertyType ExpandString -Value $Path }
Desinstale todos os aplicativos que usam o SDK do Aplicativo Windows 1.0 Preview1 ou Preview2 (confira o script abaixo).
Desinstale os pacotes do SDK do Aplicativo Windows 1.0 Preview1/Preview2, incluindo o pacote que contém o bug (confira o script abaixo).
Você pode realizar as etapas 2 e 3 com o seguinte script do Windows PowerShell (o PowerShell Core não funcionará). Execute-o elevado.
# This script must be run from an elevated Windows PowerShell # window (right-click Windows PowerShell in the Start menu, # and select Run as Administrator). # Remove the Windows App SDK 1.0 Preview1/2, and all apps that use it. $winappsdk = "Microsoft.WindowsAppRuntime.1.0-preview*" Get-AppxPackage | Where-Object { $_.Dependencies -like $winappsdk } | Remove-AppxPackage Get-AppxPackage $winappsdk | Remove-AppxPackage
Correção no SDK do Aplicativo Windows 1.0 Preview 3
O recurso que faz com que a variável de ambiente PATH seja corrompida será removido na próxima versão do SDK do Aplicativo Windows 1.0 Preview 3. Ele pode ser reintroduzido em uma data posterior, quando todos os bugs tiverem sido corrigidos e completamente testados.
Recomendamos o uso da versão 1.0 Preview 3.
Versão 1.0 Preview 2 (1.0.0-preview2)
Importante
As versões 1.0 Preview 1 e Preview 2 contêm um bug crítico. Se você já instalou uma dessas visualizações, confira como resolver o issue. Em vez disso, recomendamos usar a versão 1.0 Preview 3.
Esta é a versão mais recente do canal de preview para a versão 1.0. Ela oferece suporte a todos os recursos do canal de preview.
As seções a seguir descrevem os recursos novos e atualizados, as limitações e os problemas conhecidos para essa versão.
WinUI 3
Novas atualizações:
- Os controles foram atualizados para refletir os estilos mais recentes do Windows do WinUI 2.6.
- Há suporte para o MSIX de projeto único.
- O pacote WinUI 3 agora pode ser direcionado para o build 17763 e posterior. Confira o issue n° 921 para obter mais informações.
- Há suporte para a barra de ferramentas no aplicativo. No entanto, a barra de ferramentas no aplicativo e o suporte existente à Recarga Dinâmica/Live Visual Tree exigem a próxima versão do Visual Studio 17.0 Preview 5, disponível no final de outubro.
Bug corrigido: o texto do WebView2Runtime agora está localizado.
Para obter mais informações ou para começar a desenvolver com o WinUI 3, confira:
Windowing
Esta versão introduz atualizações para a classe AppWindow. Não há novos recursos importantes adicionados nesta versão, mas há alterações em nomes de métodos, propriedades e alguns valores de retorno foram removidos. Confira a documentação e os exemplos para obter atualizações detalhadas. Se você trabalhou com o AppWindow nas versões 1.0 Experimental ou 1.0 Preview 1, espere algumas alterações no seu código.
Novas atualizações:
- A classe AppWindowConfiguration foi removida. As propriedades dessa classe agora estão disponíveis no próprio AppWindow ou nas classes Apresentador.
- A maioria dos valores de retorno
bool
para os métodos de API do WinRT neste espaço foi removida e agora évoid
, pois esses métodos sempre teriam êxito. - As chamadas ImportDll do C# não são mais necessárias para GetWindowIdFromWindow e GetWindowFromWindowId. Em vez disso, use os métodos wrapper .NET disponíveis na classe Microsoft.UI.Win32Interop.
Limitações importantes:
- O SDK do Aplicativo Windows atualmente não fornece métodos para anexar o conteúdo da estrutura da IU a um AppWindow; você está limitado a usar os métodos de acesso de interoperabilidade HWND.
- A personalização da barra de título da janela funciona apenas no Windows 11. Use o método IsCustomizationSupported para verificar o suporte ao recurso de personalização da barra de título. Pretendemos reduzir essa funcionalidade.
Para saber mais, confira Gerenciar janelas de aplicativos.
Entrada
Novas atualizações:
- Suporte aprimorado para entrada de touchpad de precisão.
Limitações importantes:
- Todas as funções de fábrica estáticas do PointerPoint foram removidas: GetCurrentPoint, GetCurrentPointTransformed, GetIntermediatePoints e GetIntermediatePointsTransformed.
- O SDK do Aplicativo Windows não oferece suporte à recuperação de objetos PointerPoint com IDs de ponteiro. Em vez disso, use a função membro PointerPointGetTransformedPoint para recuperar uma versão transformada de um objeto PointerPoint existente. Para pontos intermediários, use as funções membro PointerEventArgsGetIntermediatePoints e GetTransformedIntermediatePoints. Confira a documentação para obter mais detalhes.
MRT Core
Novas atualizações:
- Os desenvolvedores de aplicativos agora podem recusar a indexação de um arquivo de imagem ou de um arquivo RESW no arquivo PRI em projetos .NET. Confira o issue n.º 980 para obter mais informações.
Limitações importantes:
- Em projetos do .NET, os arquivos de recurso copiados colados na pasta do projeto não serão indexados em F5 se o aplicativo já tiver sido criado. Como solução alternativa, recompile o aplicativo. Confira o issue n.º 1503 para obter mais informações].
- Em projetos .NET, os arquivos de recursos existentes adicionados de uma pasta externa não são indexados sem a configuração manual da Ação de build. Para contornar esse issue, defina a ação de build no Visual Studio: conteúdo para arquivos de imagem e PRIResource para arquivos RESW. Confira o issue n.º 1504 para obter mais informações.
Implantação para aplicativos não empacotados
Novos recursos:
- O Windows App SDK 1.0 Preview 2 apresenta um wrapper .NET para a API de bootstrapper (confira Usar o runtime do SDK do Aplicativo Windows para aplicativos empacotados com localização externa ou não empacotados). A API do bootstrapper é um conjunto de funções C/C++ nativas que os aplicativos não empacotados devem usar para assumir dinamicamente uma dependência do pacote de estrutura do SDK do Aplicativo Windows em tempo de execução. O wrapper .NET fornece uma maneira mais fácil de chamar a API de bootstrapper de aplicativos .NET, incluindo aplicativos Windows Forms e WPF. O wrapper .NET para a API bootstrapper está disponível no assembly Microsoft.WindowsAppRuntime.Bootstrap.Net.dll que é local para seu projeto de aplicativo. Para obter mais informações sobre o wrapper do .NET, confira Biblioteca de wrapper do .NET.
- Os aplicativos empacotados agora podem usar a API de implantação para obter os pacotes MSIX principal e singleton instalados no computador. Os pacotes main e singleton fazem parte do pacote de estrutura que é instalado com o aplicativo, mas devido a uma limitação com o modelo de aplicativo do Windows, os aplicativos empacotados precisarão executar essa etapa adicional para obter esses pacotes instalados. Para obter mais informações sobre como funciona a API de implantação, confira a Guia de implantação do SDK do Aplicativo Windows para aplicativos empacotados dependentes de estrutura.
Limitações importantes:
- O wrapper do .NET para a API de Bootstrapper destina-se apenas a ser usado por aplicativos do .NET não empacotados para simplificar o acesso ao SDK do Aplicativo Windows.
- Somente aplicativos em pacote MSIX que são de confiança total ou têm a funcionalidade restrita packageManagement têm a permissão para usar a API de implantação para instalar as dependências do pacote Main e Singleton. O suporte para aplicativos empacotados de confiança parcial será disponibilizado em versões posteriores.
- Ao testar F5 um aplicativo x86 que usa o método DeploymentManager.Initialize em um sistema x64, verifique se a estrutura x64 é instalada pela primeira vez executando o WindowsAppRuntimeInstall.exe. Caso contrário, você encontrará um erro de NOT_FOUND devido ao Visual Studio não implantar a estrutura x64, que normalmente ocorre por meio da implantação da Store ou do sideload.
Ciclo de vida do aplicativo
A maioria dos recursos do Ciclo de Vida do Aplicativo já existe na plataforma UWP e foi trazida para o SDK do Aplicativo Windows para uso por tipos de aplicativo da área de trabalho, especialmente aplicativos de Console não empacotados, aplicativos Win32, aplicativos Windows Forms e aplicativos WPF. A implementação de SDK do Aplicativo Windows desses recursos não pode ser usada em aplicativos UWP, pois há recursos equivalentes na própria plataforma UWP.
Aplicativos que não sejam da UWP também podem ser empacotados em pacotes MSIX. Embora esses aplicativos possam usar alguns dos recursos do ciclo de vida do SDK do Aplicativo Windows, eles devem usar a abordagem de manifesto em que isso está disponível. Por exemplo, eles não podem usar as APIs de RegisterForXXXActivation do SDK do Aplicativo Windows e devem registrar-se para ativação avançada por meio do manifesto.
Todas as restrições para aplicativos empacotados também se aplicam aos aplicativos WinUI 3 empacotados; e há considerações adicionais conforme descrito abaixo.
Considerações importantes:
Ativação avançada: GetActivatedEventArgs
- Aplicativos não empacotados: totalmente utilizáveis.
- Aplicativos empacotados: utilizáveis, mas esses aplicativos também podem usar a plataforma
GetActivatedEventArgs
. Observe que a plataforma define Windows.ApplicationModel.AppInstance, enquanto o SDK do Aplicativo Windows define Microsoft.Windows.AppLifecycle.AppInstance. E, embora os aplicativos UWP possam usar asActivatedEventArgs
classes, comoFileActivatedEventArgs
eLaunchActivatedEventArgs
, os aplicativos que usam o recurso de AppLifecycle do SDK do Aplicativo Windows e devem usar as interfaces e não as classes (por exemplo,IFileActivatedEventArgs
,ILaunchActivatedEventArgs
e assim por diante). - Aplicativos da WinUI 3: App.OnLaunched do WinUI 3 recebe um Microsoft.UI.Xaml.LaunchActivatedEventArgs, enquanto a plataforma
GetActivatedEventArgs
retorna um Windows.ApplicationModel.IActivatedEventArgs e o WindowsAppSDKGetActivatedEventArgs
retorna um objeto Microsoft.Windows.AppLifecycle.AppActivationArguments que pode representar uma plataformaLaunchActivatedEventArgs
. - Para obter mais informações, confira Ativação avançada.
Registrar/cancelar o registro para ativação avançada
- Aplicativos não empacotados: totalmente utilizáveis.
- Aplicativos empacotados: não utilizável use o manifesto MSIX do aplicativo.
- Para obter mais informações, consulte Ativação avançada.
Instanciação única/múltipla
- Aplicativos não empacotados: totalmente utilizáveis.
- Aplicativos empacotados: totalmente utilizáveis.
- Aplicativos da WinUI 3: se um aplicativo quiser detectar outras instâncias e redirecionar uma ativação, ele deverá fazer isso o mais cedo possível e antes de inicializar qualquer janela etc. Para habilitar isso, o aplicativo deve definir DISABLE_XAML_GENERATED_MAIN e gravar um Main (C#) ou WinMain (C++) personalizado, em que ele pode fazer a detecção e o redirecionamento.
- RedirectActivationToAsync é uma chamada assíncrona e você não deve esperar em uma chamada assíncrona se o aplicativo estiver em execução em um STA. Para aplicativos Windows Forms e C# WinUI 3, você pode declarar Main como assíncrono, se necessário. Para aplicativos C++ WinUI 3 e C# WPF, você não pode declarar Main como assíncrono; portanto, em vez disso, você precisa mover a chamada de redirecionamento para outro threading para garantir que não bloqueará o STA.
- Para saber mais, confira Instância de aplicativo.
Notificações de energia/estado
- Aplicativos não empacotados: totalmente utilizáveis.
- Aplicativos empacotados: totalmente utilizáveis.
- Para obter mais informações, confira Gerenciamento de Energia.
Problema conhecido:
As associações de Tipo de Arquivo codificam incorretamente %1 como %251 ao definir o modelo de linha de comando do manipulador do Verbo, que falha em aplicativos do Win32 não empacotados. Edite manualmente o valor do Registro para ser %1 como uma solução alternativa parcial. Se o caminho do arquivo de destino tiver um espaço, ele ainda falhará e não haverá solução alternativa para esse cenário.
Outras limitações e problemas conhecidos
As versões 1.0 Preview 1 e Preview 2 contêm um bug crítico. Se você já instalou uma dessas visualizações, confira como resolver o issue. Em vez disso, recomendamos usar a versão 1.0 Preview 3.
Esta versão apresenta os modelos do Aplicativo em Branco, Empacotado (WinUI 3 na Área de Trabalho) para projetos C# e C++. Esses modelos permitem que você crie seu aplicativo em um pacote MSIX sem o uso de um projeto de empacotamento separado. Esses modelos têm alguns issues conhecidos nesta versão:
Modelo C# para Visual Studio 2019. Você encontrará o erro ao tentar criar o projeto: "O projeto não sabe como executar o nome do projeto de perfil". Para resolver esse Issue, instale a extensão de ferramentas de empacotamento MSIX de projeto único.
Modelo C# para Visual Studio 2019 e Visual Studio 2022. Você encontrará o seguinte erro ao tentar executar ou depurar seu projeto no computador de desenvolvimento: "O projeto precisa ser implantado antes de podermos depurar. Habilite Implantar no Configuration Manager." Para resolver esse issue, habilite a implantação para seu projeto no Configuration Manager. Confira Criar seu primeiro projeto da WinUI 3 para obter instruções.
Modelo C++ para Visual Studio 2019 e Visual Studio 2022. Nesta versão, esses projetos são restritos a chamar o subconjunto de APIs Win32 que podem ser chamadas por aplicativos UWP. O modelo de Aplicativo em branco, empacotado com WAP (WinUI 3 na área de trabalho) não é afetado por esse issue.
Modelo C++ para Visual Studio 2022 versão 17.0 versões até Preview 4. Você encontrará o seguinte erro na primeira vez que tentar executar seu projeto: "Houve erros de implantação". Para resolver esse issue, execute ou implante seu projeto uma segunda vez. Esse problema será corrigido no Visual Studio 2022 versão 17.0 Preview 5.
API de notificações por push (namespace Microsoft.Windows.PushNotifications) incluída incorretamente na versão 1.0 Preview 2. Este ainda é um recurso experimental, e para você usá-lo você deve instalar a versão 1.0 Experimental em vez disso. Esse recurso será removido da próxima versão 1.0.
A API do ciclo de vida do aplicativo (namespace Microsoft.Windows.AppCycle) inclui incorretamente o atributo Experimental na versão 1.0 Preview 2. O atributo Experimental será removido dessa API na próxima versão.
Sem suporte para qualquer configuração de build de CPU: ao adicionar o SDK do Aplicativo Windows a um aplicativo ou componente do .NET existente que dê suporte a Qualquer CPU, especifique a arquitetura desejada:
x86
,x64
ouarm64
.Os projetos C# que usam a versão 1.0 do Preview 2 devem usar o seguinte SDK do .NET: SDK do .NET 6 ou posterior (confira Fazer download do .NET e o .NET 5 chegará ao fim do suporte em 10 de maio de 2022).
Uma alternativa ao DispatcherQueue.TryEnqueue (para retomar a execução no thread da fila do dispatcher) é usar a função auxiliar resume_foreground na WIL (Biblioteca de Implementação do Windows):
- Adicione uma referência ao seu projeto ao pacote NuGet Microsoft.Windows.ImplementationLibrary.
- Adicione
#include <wil/cppwinrt_helpers.h>
ao seupch.h
. - Adicione
#include <winrt/Microsoft.UI.Dispatching.h>
ao seupch.h
. - Agora
co_await wil::resume_foreground(your_dispatcherqueue);
.
Versão 1.0 Preview 1 (1.0.0-preview1)
Importante
As versões 1.0 Preview 1 e Preview 2 contêm um bug crítico. Se você já instalou uma dessas visualizações, confira como resolver o issue. Em vez disso, recomendamos usar a versão 1.0 Preview 3.
Esta é a primeira versão do canal de preview para a versão 1.0. Ela oferece suporte a todos os recursos do canal de preview.
As seções a seguir descrevem os recursos novos e atualizados, as limitações e os problemas conhecidos para essa versão.
WinUI 3
Esta versão do WinUI 3 é focada na construção para 1.0 com correções de bugs.
- Novos recursos: sem novos recursos na Preview 1.
- Issues corrigidos: para obter a lista completa de problemas abordados nesta versão, confira o nosso repositório do GitHub.
Para obter mais informações ou para começar a desenvolver com o WinUI 3, confira:
Windowing
Esta versão traz a API de Janelas que introduzimos no Experimental 1 para um estado de preview. Não há grandes áreas de novos recursos nesta versão, pois ela é focada em correções de bugs, estabilidade e ajustes na assinatura da API. As mudanças e adições em destaque são apresentadas abaixo.
Novos recursos:
- O DisplayAreaWatcher foi adicionado às APIs de janela. Isso permite que um desenvolvedor observe as alterações na topologia de exibição e enumere as DisplayAreas atualmente definidas no sistema.
- Agora, o AppWindow suporta a configuração do ícone da janela através do método SetIcon e o AppWindowTitleBar agora suporta selecionar se deseja mostrar/ocultar o ícone da janela junto com o menu de sistema por meio da propriedade IconShowOptions.
Limitações importantes:
- Esta versão do AppWindow está atualmente disponível apenas para os aplicativos Win32 (empacotados e não empacotados).
- O SDK do Aplicativo Windows atualmente não fornece métodos para anexar o conteúdo da estrutura da IU a um AppWindow; você está limitado a usar os métodos de acesso de interoperabilidade HWND.
- A personalização da barra de título da janela funciona apenas no Windows 11. Use o método IsCustomizationSupported para verificar o suporte ao recurso de personalização da barra de título. Pretendemos reduzir essa funcionalidade.
Para saber mais, confira Gerenciar janelas de aplicativos.
Entrada
Esta versão traz alguns novos recursos para a API de entrada. As mudanças e adições em destaque são apresentadas abaixo.
Novos recursos e atualizações:
- O PointerPredictor oferece aos aplicativos de entrada com sensibilidade de latência, como aplicativos de tinta digital, a capacidade de prever locais de ponto de entrada de até 15ms no futuro para obter melhor latência e animação suave.
- O PenDeviceInterop permite que você adquira uma referência ao Windows.Devices.Input.PenDevice usando o método FromPointerPoint.
- O InputCursor fornece uma distinção explícita entre os tipos de cursor de sistema predefinidos e os tipos de cursor personalizados, removendo o tipo "Personalizado" presente no
CoreCursor
e dividindo o objetoCoreCursor
em objetos separados. - Atualizações para APIs InputCursor.
- O GestureRecognizer saiu do experimental para Microsoft.UI.Input.
- O PointerPoint saiu do experimental para Microsoft.UI.Input.
- Entrada de mouse, toque e caneta totalmente suportada para arrastar e soltar WinUI 3.
Limitações importantes:
- Esta versão das APIs de entrada tem issues conhecidos com o Windows versão 1809.
- O MRT Core ainda não é suportado por nenhum subtipo de InputCursor.
- O uso direto da API do SDK da plataforma Windows.UI.Core.CoreDragOperation não funcionará com os aplicativos da WinUI 3.
- As propriedades PointerPoint, RawPosition e ContactRectRaw foram removidas porque se referiam a valores não previstos, que eram os mesmos que os valores normais no sistema operacional. Em vez disso, use a Posição e o ContactRect. A previsão de ponteiro agora é tratada com o objeto da API do Microsoft.UI.Input.PointerPredictor.
MRT Core
A partir da versão 1.0 Preview 1, as APIs do MRT Core foram movidas do namespace Microsoft.ApplicationModel.Resources para o namespace Microsoft.Windows.ApplicationModel.Resources.
Outras limitações e problemas conhecidos
As versões 1.0 Preview 1 e Preview 2 contêm um bug crítico. Se você já instalou uma dessas visualizações, confira como resolver o issue. Em vez disso, recomendamos usar a versão 1.0 Preview 3.
Projetos criados usando o modelo de projeto C++ Aplicativo em branco e empacotado com WAP (WinUI 3 na área de trabalho) encontram o seguinte erro de build por padrão:
fatal error C1083: Cannot open include file: 'winrt/microsoft.ui.dispatching.co_await.h': No such file or directory
. Para resolver esse issue, remova a seguinte linha de código do arquivo pch.h. Esse problema será corrigido na próxima versão.#include <winrt/microsoft.ui.dispatching.co_await.h>
Uma alternativa ao DispatcherQueue.TryEnqueue (para retomar a execução no thread da fila do dispatcher) é usar a função auxiliar resume_foreground na WIL (Biblioteca de Implementação do Windows):
- Adicione uma referência ao seu projeto ao pacote NuGet Microsoft.Windows.ImplementationLibrary.
- Adicione
#include <wil/cppwinrt_helpers.h>
ao seupch.h
. - Adicione
#include <winrt/Microsoft.UI.Dispatching.h>
ao seupch.h
. - Agora
co_await wil::resume_foreground(your_dispatcherqueue);
.
Não há suporte para qualquer configuração da compilação de CPU: o SDK do Aplicativo Windows é escrito em código nativo e, portanto, não oferece suporte para qualquer configuração da compilação de CPU. Os modelos do WinUI 3 no Visual Studio só permitem compilações específicas da arquitetura. Ao adicionar o SDK do Aplicativo Windows a um aplicativo ou componente do .NET existente que seja compatível com qualquer CPU, especifique a arquitetura desejada:
x86
,x64
ouarm64
.Os aplicativos do .NET devem ter como destino o build 18362 ou posterior: o TFM deve ser definido como
net6.0-windows10.0.18362
ou posterior e o projeto de empacotamento<TargetPlatformVersion>
deve ser definido como 18362 ou posterior. Para obter mais informações, confira o issue conhecido no GitHub.Os projetos C# que usam a versão 1.0 do Preview 1 devem usar o seguinte SDK do .NET: SDK do .NET 6 ou posterior (confira Fazer download do .NET e o .NET 5 chegará ao fim do suporte em 10 de maio de 2022).
Aplicativos não empacotados não suportados no Windows 10 versão 1809: isso deve ser resolvido na próxima versão.
Tópicos relacionados
Windows developer
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de