Note sulla versione del canale stabile per Windows App SDK

Il canale stabile fornisce versioni di Windows App SDK supportati per l'uso da parte delle app negli ambienti di produzione. Le app che usano la versione stabile del Windows app SDK possono anche essere pubblicate in Microsoft Store.

Sono attualmente disponibili le versioni seguenti del canale stabile:

Se si vuole aggiornare un'app esistente da una versione precedente di Windows App SDK di Windows a una versione più recente, vedere Aggiornare i progetti esistenti alla versione più recente di Windows App SDK.

Vedere Download per Windows App SDK

Nota

Le estensioni di Visual Studio di Windows App (VSIX) non vengono più distribuite come download separato. Sono disponibili in Visual Studio Marketplace all'interno di Visual Studio.

Versione 1.5

Versione 1.5.2 (1.5.240404000)

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.5 e una nuova funzionalità per i provider di feed di widget.

Aggiornamenti dei provider di feed di widget

  • Ora i provider di feed sono in grado di mostrare gli annunci nel dashboard dei widget:
    • La nuova API FeedManager.TryShowAnnouncement consente a un provider di feed di richiedere che il dashboard dei widget ne mostri gli annunci. Per mostrare l'annuncio, creare un oggetto FeedAnnouncement e chiamare l'API FeedManager.TryShowAnnouncement.
    • Gli annunci di feed avranno i propri badge visualizzati nella barra delle applicazioni, che può essere personalizzata tramite l'API FeedAnnouncement.
  • Ora i provider di feed possono acconsentire esplicitamente alla ricezione di informazioni su Analisi e Segnalazioni errori del provider quando un utente vi interagisce. Per acconsentire esplicitamente, implementare le interfacce IFeedProviderAnalytics e/o IFeedProviderErrors dal provider.

Gli aggiornamenti del provider di feed includono le seguenti nuove:

Microsoft.Windows.Widgets.Feeds.Providers
 
    FeedAnalyticsInfoReportedArgs
    FeedErrorInfoReportedArgs
    FeedManager
        SendMessageToContent
        TryShowAnnouncement
 
    FeedMessageReceivedArgs
    FeedResourceRequest
    FeedResourceRequestedArgs
    FeedResourceResponse
    IFeedAnnouncementInvokedTarget
    IFeedManager2
    IFeedProviderAnalytics
    IFeedProviderErrors
    IFeedProviderMessage
    IFeedResourceProvider
Microsoft.Windows.Widgets.Notifications
 
    AnnouncementActionKind
    AnnouncementTextColor
    FeedAnnouncement
    FeedAnnouncementInvokedArgs

Correzioni di bug

  • Risolto un problema per cui DispatcherTimer non si attivava al momento giusto se lo schermo primario non era in esecuzione a 60 Hz.
  • Risolto un problema per cui una finestra Input Method Editor (IME) della casella di testo non veniva posizionata correttamente quando era in esecuzione a un fattore di scala diverso dal 100%. Per altre informazioni, vedere il problema 9382 su GitHub.
  • Risolto un problema per cui un'operazione di trascinamento avviata da un'altra app poteva non consentire le operazioni di rilascio Copia/Spostamento/Collegamento.
  • Correzione di un potenziale arresto anomalo quando un controllo ListView ItemsSource viene ripristinato e riportato immediatamente allo stato attivo.
  • Risolto un problema per cui i popup/riquadri a comparsa ShouldConstrainToRootBounds="false" non applicavano le trasformazioni di dimensionamento ereditate. Per altre informazioni, vedere i problemi di GitHub #9118 e #9433.
  • Correzione di un potenziale arresto anomalo quando un oggetto Composition viene rimosso con un'animazione ancora in esecuzione.
  • Correzione di un potenziale arresto anomalo durante l'arresto in NavigationView::RevokeNavigationViewItemRevokers.

Versione 1.5.1 (1.5.240311000)

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.5.

  • Risolto un problema per cui la compilazione di app poteva non riuscire per l'impossibilità di copiare "map.html".
  • Risolto un problema per cui l'inizializzazione di MapControl non riusciva a causa del rifiuto di token validi. Per altre informazioni, vedere il problema 9324 su GitHub.
  • Risolto un problema per cui il caricamento di MapControl avveniva con uno sfondo blu. Per altre informazioni, vedere il problema 9377 su GitHub.
  • Risolto un problema per cui facendo clic sulla freccia di espansione, un NavigationViewItem non si espandeva o comprimeva correttamente con un solo clic. Questo errore faceva anche sì che i menu apparissero vuoti quando si cliccava la freccia di espansione in modalità PaneDisplayMode="Top". Per altre informazioni, vedere i problemi di GitHub #9423 e #9426.
  • Risolto un problema per cui il tocco su un NavigationViewItem con tocco o penna impediva all'elemento di rispondere a qualsiasi input futuro. Per altre informazioni, vedere il problema 9429 su GitHub.
  • Correzione di un arresto anomalo quando si fa clic su un elemento nell'area NavigationView.PaneFooter. Per altre informazioni, vedere il problema 9396 su GitHub.
  • Risolto un problema per cui le icone nei menu comparivano talvolta in posizione errata. Per altre informazioni, vedere il problema 9409 su GitHub.
  • Risolto un problema per cui l'acrilico non compariva nei menu fino a quando non si usciva dalla finestra e vi si rientrava. Per altre informazioni, vedere il problema 9406 su GitHub.
  • Correzione di un arresto anomalo che poteva verificarsi durante l'inizializzazione di TextBox/RichEditBox. Per altre informazioni, vedere il problema 9216 su GitHub.
  • Correzione di alcune eccezioni rumorose che NavigationView generava e rilevava per la distruzione.
  • Risolto un problema per cui un gesto "avvicina le dita per eseguire lo zoom" mostrava una panoramica o un tocco a causa di un'attivazione del messaggio PointerCaptureLost errata.

Versione 1.5

Nelle sezioni seguenti vengono descritte le funzionalità nuove e aggiornate e i problemi noti per la versione 1.5.

In un'app esistente di Windows App SDK1.3 è possibile aggiornare il pacchetto Nuget alla versione 1.5.240227000 (vedere la sezione Aggiorna un pacchetto in Installazione e gestione pacchetti in Visual Studio usando Gestione pacchetti NuGet).

Per il runtime e l'MSIX aggiornati, vedere anche Download per il Windows App SDK.

Aggiornamenti di runtime e arresto delle isole XAML

Esiste una differenza comportamentale tra WinAppSDK 1.4 e WinAppSDK 1.5 per le app basate sulle isole XAML quando viene chiusa l'ultima finestra XAML su qualsiasi thread.

  • In WinAppSDK 1.4 il runtime XAML esce sempre dal ciclo di eventi del thread quando viene chiusa l'ultima finestra XAML di un thread.
  • In WinAppSDK 1.5:
    • Se l'app è un'app Desktop WinUI, il comportamento predefinito è sempre uguale a quello di WinAppSDK 1.4.
    • Se si utilizza Xaml per l'API DesktopWindowXamlSource ("Isole Xaml"), il comportamento predefinito prevede che Xaml non esca automaticamente dal ciclo di eventi del thread.
    • In entrambe le modalità è possibile modificare questo comportamento impostando la proprietà Application.DispatcherShutdownMode.

Per altre informazioni, vedere la documentazione relativa alla Application.DispatcherShutdownMode proprietà quando disponibile. Questa operazione completa la proposta di GitHub #8492.

Esiste una differenza comportamentale tra WinAppSDK 1.4 e WinAppSDK 1.5 per le app basate su isole XAML nella durata del runtime XAML:

  • In WinAppSDK 1.4 il runtime XAML si arresta su un thread se tutti gli WindowsXamlManager e gli DesktopWindowXamlSource oggetti in un determinato thread vengono chiusi o arrestati oppure DispatcherQueue l'esecuzione su tale thread viene arrestata (in questo caso il runtime XAML si arresta durante la DispatcherQueue.FrameworkShutdownStarting fase).
  • In WinAppSDK 1.5 il runtime XAML si arresta su un thread solo quando DispatcherQueue in esecuzione su tale thread viene arrestato (il runtime Xaml viene sempre arrestato durante la DispatcherQueue.FrameworkShutdownStarting fase).

Per altre informazioni, vedere la documentazione relativa alla WindowsXamlManager classe quando disponibile.

Esiste una differenza comportamentale in WindowsXamlManager.InitializeForCurrentThread():

  • In WinAppSDK 1.4 WindowsXamlManager.InitializeForCurrentThread() restituisce un'istanza univoca di un WindowsXamlManager oggetto con ogni chiamata.
  • In WinAppSDK 1.5 restituisce WindowsXamlManager.InitializeForCurrentThread() un'istanza esistente se ne esiste già una nel thread. Close/Dispose() viene ora ignorato.

Controllo Mappe WinUI

Il controllo WinUI Maps è ora disponibile. Questo controllo è basato su WebView2 e Mappe di Azure, fornendo le seguenti funzionalità:

  • Panoramica e zoom con i pulsanti della mappa o il tocco.
  • Modifica dello stile della mappa in visualizzazione satellite, terreno o strada.
  • Aggiunta a livello di codice di pin interagendo con icone personalizzabili dallo sviluppatore alla mappa.
  • Personalizzazione dello sviluppatore per la posizione in cui la mappa è centrata sul carico iniziale.
  • Controllare per gli sviluppatori di nascondere o visualizzare i pulsanti per la panoramica, lo zoom e gli stili della mappa.

Controllo Mappe WinUI 3

Nota

Per usare il Maps controllo, è necessario un tasto Mappe di Azure. Per creare la chiave, vedere la pagina della documentazione Mappe di Azure per la creazione di un'app Web.

Il Maps controllo è completamente nuovo e siamo lieti di valutare la sua direzione futura!

Nuovo controllo SelectorBar

Nella versione 1.5 è stato aggiunto un nuovo SelectorBar controllo per consentire agli utenti di passare da più visualizzazioni di dati. Questo controllo era precedentemente noto come "SegmentedControl" nella roadmap 1.5.

Controllo SelectorBar WinUI 3

Etichette nei comandi primari CommandBarFlyout

Gli oggetti visivi di CommandBarFlyout sono stati aggiornati per visualizzare un'etichetta di testo per gli elementi nell'area dei comandi primari se la Label proprietà è stata impostata su AppBarButton. In precedenza, i comandi primari nell'area CommandBarFlyout visualizzavano solo un'icona, ma ora possono visualizzare sia un'icona che un'etichetta per migliorare l'usabilità.

Etichette CommandBarFlyout WinUI 3

Supporto webView2 per ambiente/opzioni personalizzate

Il controllo WinUI WebView2 espone ora la possibilità di personalizzare l'oggetto sottostante CoreWebView2 con un oggetto personalizzato CoreWebView2Environment e CoreWebView2ControllerOptions. Ciò consente all'autore dell'app di specificare un percorso alternativo da cui caricare WebView2Runtime, scegliere di usare un diverso UserDataFolder, o impostare opzioni come IsPrivateModeEnabled e ScriptLocale.

Supporto per .NET 8

È stato aggiunto il supporto per .NET 8 in una versione di manutenzione 1.4 recente, ma questo ha comunque mantenuto l'avviso per l'uso di RID specifici della piattaforma. Nella versione 1.5 il lavoro è stato completato in modo che l'avviso non sia più presente.

Miglioramento del debug e della disponibilità dell'origine

A questo punto inseriamo informazioni sul server di origine Github per il codice nel repository microsoft-ui-xaml nei simboli pubblici, consentendo ai debugger di scaricare automaticamente il codice sorgente. Abbiamo anche apportato altre correzioni e miglioramenti ai nostri simboli nell'intero WinAppSDK per migliorare l'esperienza di debug.

Funzionalità migliorate per il debug dei cicli di layout

Il debug dei cicli di layout in un'app WinUI può essere un problema, quindi nella versione 1.5 l'oggetto DebugSettings espone ora le opzioni per abilitare la registrazione e i punti di interruzione migliorati per il processo di layout per semplificare il debug e la correzione dei cicli di layout nell'app.

Altre nuove funzionalità da winAppSDK

  • Aggiunta del supporto per il modello di distribuzione PublishSingleFile. Per altre info su PublishSingleFile, vedere la documentazione relativa alla distribuzione di file singoli.
  • Sono stati aggiunti miglioramenti al supporto del lettore dello schermo, al supporto per il ridimensionamento del testo e ad altre funzionalità di accessibilità.
  • Vari miglioramenti della stabilità e delle prestazioni in base al backlog dei bug di GitHub con priorità.

Nuove funzionalità rilasciate separatamente

Le nuove versioni dei modelli di Visual Studio WinAppSDK per C# e C++ vengono rilasciate tramite Visual Studio Marketplace e verranno visualizzate alcune settimane dopo il rilascio della versione 1.5. Con la nuova versione, i modelli potrebbero ora essere rilasciati indipendentemente dalle versioni di WinAppSDK, offrendoci molto più flessibilità per ottenere gli aggiornamenti ai clienti.

Altre funzionalità pianificate in precedenza

Nella versione 1.5 sono stati compiuti progressi sulle funzionalità seguenti annunciate nella roadmap, ma non completate. Continueranno nell'intervallo di tempo 1,6.

  • Finestre a schede
  • Supporto del trascinamento della selezione per WebView2
  • Indagini sui controlli visualizzazione tabella e input penna

L'illuminazione dinamica è stata rimossa dalla roadmap per il momento.

Problemi noti

  • Quando si usano librerie che contengono risorse come file xaml, è possibile che venga visualizzato un messaggio di errore in fase di esecuzione che indica che non è possibile trovare tali risorse. In questo caso, potrebbe essere necessario inserire <ShouldComputeInputPris>true</ShouldComputeInputPris> nel file di progetto per assicurarsi che tali risorse vengano incluse.
  • Facendo clic sulla freccia di espansione di un oggetto NavigationViewItem non viene più espanso o compresso correttamente su un singolo clic. Il doppio clic continua a funzionare, così come il clic in altre parti di NavigationViewItem.

Correzioni di bug

  • È stato risolto un problema per cui StackPanel ha applicato la spaziatura agli elementi compressi. Per altre informazioni, vedere il problema 916 su GitHub.
  • Sono stati risolti problemi con i controlli di scorrimento che non funzionano più dopo la chiusura di un'altra finestra dell'app. Per altre informazioni, si vedano i Problemi di GitHub #9292 e #9355.
  • Correzione di un arresto anomalo quando si imposta DebugSettings.EnableFrameRateCounter su Vero prima del rendering del primo frame. Per altre informazioni, vedere il problema 2835 su GitHub.
  • Correzione di un potenziale errore di compilazione per C++ in cui alcune intestazioni non includevano le dipendenze necessarie. Si noti che la modifica dell'ordine #include potrebbe influire su alcune app, ad esempio causando un errore di compilazione per IInspectable se l'app usa una versione di C++/WinRT precedente al 2023. Per altre informazioni, vedere il problema 9014 su GitHub.
  • È stato risolto un problema per cui ElementName le associazioni non funzionano all'interno di ItemsRepeaterDataTemplate. Per altre informazioni, vedere il problema 560 su GitHub.
  • Correzione di arresti anomali durante l'esecuzione di un'app in Visual Studio con la barra degli strumenti in-app abilitata. Visual Studio 17.8 Preview 2 o versione successiva è necessario per ottenere completamente le correzioni. Per altre informazioni, vedere il problema 8806 su GitHub.
  • È stato risolto un problema per cui AnnotatedScrollbar a volte poteva verificarsi un arresto anomalo durante lo scorrimento rapido.
  • È stato risolto un problema per cui il testo del menu a volte verrebbe troncato.
  • È stato risolto un problema per cui i suggerimenti per l'insegnamento non ricevevano lo stato attivo appropriato. Per altre informazioni, vedere il problema 3257 su GitHub.
  • È stato risolto un problema che causava l'arresto anomalo dell'applicazione durante l'impostazione TailVisibility di un oggetto TeachingTip su Compresso all'avvio. Per altre informazioni, vedere il problema 8731 su GitHub.
  • È stato risolto un problema relativo al modo in cui i file PRI venivano gestiti quando si usano le librerie. Per altre informazioni, vedere il problema 8857 su GitHub.
  • È stato risolto un problema dalla versione 1.5-experimental2 in cui la DLL di proiezione non veniva generata. Per altre informazioni, vedere il problema 4152 su GitHub.
  • È stato risolto un problema per cui il pulsante con i puntini di sospensione nella finestra popup per la formattazione del testo di RichEditBox non visualizzava correttamente l'elenco delle azioni. Per altre informazioni, vedere il problema 9140 su GitHub.
  • È stato risolto un problema per cui ListView non gestiva correttamente gli acceleratori da tastiera. Per altre informazioni, vedere il problema 8063 su GitHub.
  • Correzione di un problema di violazione di accesso relativo all'uso AccessKey di per chiudere una finestra. Per altre informazioni, vedere il problema 8648 su GitHub.
  • Correzione di un arresto anomalo quando si usa un AccessKey oggetto per chiudere una finestra. Per altre informazioni, vedere il problema 9002 su GitHub.
  • È stato risolto un problema che interessava l'allineamento del testo in un MenuFlyoutItem all'interno di un MenuBar. Per altre informazioni, vedere il problema 8755 su GitHub.
  • È stato risolto un problema per cui il testo evidenziato non rimane evidenziato al clic con il pulsante destro del mouse. Per altre informazioni, vedere il problema 1801 su GitHub.
  • È stato risolto un problema che causava l'arresto anomalo dell'app inattiva all'arresto anomalo dell'app. Per altre informazioni, vedere il problema 8913 su GitHub.
  • È stato risolto un problema che poteva bloccare le applicazioni durante lo scorrimento con il pulsante centrale del mouse e facendo clic con il pulsante sinistro immediatamente dopo. Per altre informazioni, vedere il problema 9233 su GitHub.
  • Risolto un problema che causava l'arresto anomalo delle app durante l'uso di un NavigationViewItem personalizzato. Per altre informazioni, vedere il problema 8814 su GitHub.
  • Risolto un problema NavigationView per cui il pulsante con i puntini di sospensione generava erroneamente un errore. Per altre informazioni, vedere il problema 8380 su GitHub.
  • Risolto un problema per cui il rendering di SystemBackdrop non veniva effettuato correttamente in un'app con più finestre. Per altre informazioni, vedere il problema 8423 su GitHub.
  • Risolto un problema di duplicazione durante l'inserimento all'inizio di una ObservableCollection. Per altre informazioni, vedere il problema 8370 su GitHub.

Version 1.4

Versione 1.4.5 (1.4.240211001)

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.4.

  • È stato risolto un problema che poteva bloccare le applicazioni quando si faceva clic su un pulsante del mouse mentre si scorreva con la rotellina del mouse. Per altre informazioni, vedere il problema 9233 su GitHub.
  • È stato risolto un problema relativo agli asset duplicati quando si fa riferimento a una catena di pacchetti NuGet. Per altre informazioni, vedere il problema 8857 su GitHub.
  • Sono stati risolti diversi BreadcrumbBar problemi, tra cui una perdita di memoria, un arresto anomalo quando il menu con i puntini di sospensione è vuoto e il menu con i puntini di sospensione non è vincolato correttamente all'interno della finestra.
  • Correzione di un potenziale arresto anomalo durante il rilascio delle risorse grafiche.

Versione 1.4.4 (1.4.231219000)

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.4.

  • Correzione di un problema di sicurezza della diagnostica winUI 3.
  • È stato risolto un problema di input per cui la casella della password non visualizzava la tastiera su schermo quando è attivata tramite tocco. Per altre informazioni, vedere il problema 8946 su GitHub.
  • È stato risolto un problema che causava l'aumento imprevisto delle Microsoft.UI.Xaml.Controls.dll dimensioni del file.
  • È stato risolto un CommandBarFlyout problema che poteva causare arresti anomali durante l'impostazione dello stato attivo.
  • Aggiornamento del supporto Windows App SDK per la gestione degli asset specifici di .NET 8 RID.
  • È stato risolto un problema che causava il posizionamento o l'estensione non corretta di alcune portachiavi.

Versione 1.4.3 (1.4.231115000)

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.4.

  • È stato risolto un problema per cui un menu poteva essere visualizzato senza sfondo per un breve periodo di tempo.
  • Correzione di un arresto anomalo che potrebbe verificarsi in scenari specifici con più monitor.
  • È stato risolto un problema per cui un menu di scelta rapida poteva essere visualizzato fuori schermo.
  • È stato risolto un problema relativo a stili di finestra e all'ottimizzazione del comportamento. Per altre informazioni, vedere il problema 8996 su GitHub.
  • È stato risolto un problema relativo alle isole in cui lo stato attivo poteva essere catturato in modo imprevisto da un altro controllo.
  • Correzione di un problema relativo all'ordine di tabulazione in NavigationView.
  • È stato risolto un problema di rendering per cui una barra bianca potrebbe essere visibile nella parte superiore della barra del titolo. Per altre informazioni, vedere il problema 8947 su GitHub.
  • Varie correzioni delle prestazioni.

Versione 1.4.2 (1.4.231008000)

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.4.

  • È stato risolto un problema di arresto anomalo in explorer.exe causato da un'allocazione eccessiva di memoria e oggetti.
  • Correzione di un problema di interazione della barra del titolo che impediva il corretto funzionamento del pulsante Indietro.
  • È stato risolto un problema che causava la generazione di un avviso per l'inserimento di un file di origine più volte.
  • Correzione di un problema che influisce sulle prestazioni del menu di scelta rapida.
  • È stato risolto un problema di collegamento .lnk che faceva sì che il .exe di destinazione puntasse sempre alla stessa posizione per i pacchetti nella cartella WindowsApps.
  • Correzione di un problema DWriteCore che interessa il rendering corretto del testo indic in determinati tipi di carattere.
  • È stato risolto un problema in una visualizzazione elenco che impediva lo spostamento tramite tastiera corretto da e verso gli elementi selezionati nidificati con TAB/MAIUSC + TAB.
  • È stato risolto un problema che causava lo scorrimento degli elementi ComboBox tramite tocco dopo l'espansione di ComboBox una seconda volta. Per altre informazioni, vedere il problema 8831 su GitHub.
  • È stato risolto un problema per cui i pacchetti WinAppSDK non includevano le risorse localizzate di WinUI per alcune lingue.
  • Correzione di un'incoerenza tra il modo in cui Esplora file e XAML visualizzano il linguaggio preferito di un utente.
  • È stato risolto un problema di artigianalità in Esplora file causando la visualizzazione di una linea sottile sotto la scheda attiva.
  • È stato risolto un problema per cui alcuni acceleratori di tastiera forniti dal framework non erano localizzati correttamente. Per altre informazioni, vedere il problema 2023 su GitHub.
  • È stato risolto un problema relativo ai controlli RepeatButton che venivano scorrere ripetutamente quando si toccava.
  • Correzione del programma di installazione di WinAppSDK .exe per avere informazioni appropriate sulla versione delle risorse.

Versione 1.4.1 (1.4.230913002)

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.4.

  • Sono stati risolti problemi di prestazioni per migliorare il tempo al primo fotogramma.
  • È stato risolto un problema per cui i menu non rispettava RequestedTheme. Ad esempio, è stato possibile che questo problema comporti il testo bianco su uno sfondo bianco. Per altre informazioni, vedere il problema 8756 su GitHub.
  • È stato risolto un problema che causava la completa trasparenza degli sfondi acrilici in alcuni menu.
  • È stato risolto un problema per cui XAML a volte causava la ridipintura non necessaria dello sfondo del desktop da parte di Windows.
  • Correzione del supporto per TabNavigation = Local e TabNavigation = Cycle per ListView e GridView, che ora consente di spostarsi tra intestazioni ed elementi con TAB oltre ai tasti di direzione.
  • Correzione di alcune eccezioni rumorose quando si ignora una descrizione comando. Per altre informazioni, vedere il problema 8699 su GitHub.

Version 1.4

Nelle sezioni seguenti vengono descritte le funzionalità nuove e aggiornate e i problemi noti per la versione 1.4.

In un'app esistente di Windows App SDK1.3 è possibile aggiornare il pacchetto Nuget alla versione 1.4.230822000 (vedere la sezione Aggiorna un pacchetto in Installazione e gestione pacchetti in Visual Studio usando Gestione pacchetti NuGet).

Per il runtime e l'MSIX aggiornati, vedere anche Download per il Windows App SDK.

Barra del titolo personalizzata + operazione di fusione della barra del titolo di AppWindow

La barra del titolo personalizzata winUI 3 usa l'implementazione della barra del titolo appWindow, insieme alle API NonClientInputPointerSource, per la logica in Windows App SDK 1.4. Di conseguenza, entrambe le implementazioni della barra del titolo ora si comportano allo stesso modo con le stesse funzionalità e limitazioni. Questa funzionalità è completamente compatibile con le versioni precedenti in tutti i casi supportati: qualsiasi app con una barra del titolo definita personalizzata avrà un comportamento precedente. Tuttavia, è ora più facile per gli sviluppatori WinUI 3 che potrebbero essere nuovi a barre dei titoli personalizzate per comprenderli e usarli sfruttando queste nuove funzionalità:

  • Uno scenario predefinito migliore in cui lo sviluppatore non definisce un elemento della barra del titolo in modo specifico (sostituendo la barra del titolo di fallback da WinUI 2)
  • Aree di trascinamento distinte nella barra del titolo, consentendo di creare più aree di trascinamento e posizionare controlli selezionabili in qualsiasi parte dell'area non client (area della barra del titolo)
  • Aree trascinabili a livello di app che possono essere inserite ovunque nell'app o rendere l'intera app trascinabile
  • Supporto di tema migliore che sostituisce il tema basato sulle risorse
    • Poiché le aree di trascinamento sono trasparenti, seguono ogni volta il tema dell'app
  • Avere una maggiore personalizzazione: nascondere i pulsanti min, max e close; posizionare le icone di sistema nella barra del titolo; o avere aree diverse agiscono come pulsanti didascalia che ricevono risposte NCHITTEST
  • Maggiore libertà di sviluppo che consente di combinare e abbinare le API della barra del titolo di AppWindow, ad esempio l'uso di API WinUI 3 di livello superiore per la maggior parte degli scenari, ma con le API AppWindow miste per il controllo di livello inferiore

Aggiornamenti dei widget

Sono state aggiunte tre nuove interfacce per i provider di widget da implementare: IWidgetProvider2, IWidgetProviderAnalytics e IWidgetProviderErrors. IWidgetProvider2 consente ai provider di rispondere all'azione Personalizza richiamata dall'utente, che è identica a quella disponibile per i widget di terze parti. Le interfacce IWidgetProviderAnalytics e IWidgetProviderErrors vengono usate dai provider per raccogliere dati di telemetria per i widget. Gli eventi di analisi e di errore relativi ai widget vengono comunicati ai rispettivi provider di widget. Le classi WidgetCustomizationRequestedArgs, WidgetAnalyticsInfoReportedArgse WidgetErrorInfoReportedArgs vengono usate per comunicare informazioni pertinenti per supportare nuove funzionalità.

Isole XAML non più sperimentali

Le isole XAML e la piattaforma ContentIslands sottostante non sono più sperimentali.

  • Attualmente le isole XAML vengono testate solo per l'uso nelle app C++. Questa versione non include elementi wrapper pratici da usare in WPF o WinForms.
  • DesktopWindowXamlSource e i tipi correlati sono stati aggiunti nello spazio dei nomi Microsoft.UI.Xaml.Hosting per le isole XAML. XamlRoot.ContentIslandEnvironment è stato aggiunto per consentire l'accesso alle informazioni sull'isola sottostanti per un elemento.
  • Molti nuovi tipi sono stati introdotti nello spazio dei nomi Microsoft.UI.Content e nello spazio dei nomi Microsoft.UI.Input come supporto sottostante per le isole XAML o per l'uso di questa funzionalità ContentIslands senza XAML.
  • Nello spazio dei nomi Microsoft.UI.Input.DragDrop è stato aggiunto un nuovo DragDropManager (più i tipi correlati) per gli scenari dell'isola.

ItemsView

Viene introdotto un nuovo controllo elenco denominato ItemsView e una classe concreta ItemContainer corrispondente. ItemContainer è un contenitore leggero con stati di selezione predefiniti e oggetti visivi, che possono facilmente eseguire il wrapping del contenuto desiderato e essere usati con ItemsView per uno scenario di controllo raccolta.

  • Il nuovo ItemsView controllo visualizza una raccolta dati. ItemsView è simile a ListView e GridView ma viene compilato usando i componenti ItemsRepeater, ScrollView, ItemContainer e ItemCollectionTransitionProvider. Offre la possibilità unica di collegare implementazioni personalizzate Layout o ItemCollectionTransitionProvider. Un altro vantaggio fondamentale è la possibilità di cambiare il layout in tempo reale mantenendo la selezione degli elementi. Il controllo interno ScrollView offre anche funzionalità non disponibili nel ListView/GridView's ScrollViewer ad esempio la possibilità di controllare l'animazione durante gli scorrimenti a livello di codice.
    • Una nuova ItemTransitionProvider proprietà su ItemsRepeater (e il nuovo controllo ItemsView) consente di specificare un ItemCollectionTransitionProvider oggetto per controllare le animazioni di transizione su tale controllo. È CreateDefaultItemTransitionProvider stato aggiunto anche un metodo a Layout, che consente a un oggetto di layout di fornire una transizione di fallback per accompagnarla se non ne viene specificato uno in modo esplicito nel comando ItemsView.
    • Una nuova IndexBasedLayoutOrientation proprietà in Layout cui l'orientamento del layout, se presente, degli elementi si basa sull'indice nella raccolta di origine. Il valore predefinito è IndexBasedLayoutOrientation.None. I layout personalizzati impostano questa proprietà chiamando il nuovo metodo (protetto) SetIndexBasedLayoutOrientation.
    • Una nuova VisibleRect proprietà su VirtualizingLayoutContext ottiene il rettangolo del riquadro di visualizzazione visibile all'interno dell'oggetto FrameworkElement associato all'oggetto Layout. È possibile eseguire l'override del metodo virtuale protetto VirtualizingLayoutContext.VisibleRectCore per fornire il valore che verrà restituito dalla proprietà VisibleRect.
  • La nuova LinedFlowLayout classe viene in genere utilizzata per disporre gli elementi del ItemsView controllo raccolta. È particolarmente utile per la visualizzazione di raccolte di immagini. Lo fa posandoli da sinistra a destra, e dall'alto verso il basso, in linee di uguale altezza. Le immagini riempiono una linea orizzontale e quindi la incapsulano in una riga successiva. Le immagini potrebbero essere ritagliate ai bordi sinistro e destro per adattarsi a una linea. Potrebbero anche essere espansi orizzontalmente e ritagliati nei bordi superiore e inferiore per riempire una linea quando viene utilizzata la modalità di estensione.

Nuove funzionalità da tutto il WinAppSDK

  • Una nuova ThemeSettings classe che consente alle app Win32 WinRT di rilevare quando l'impostazione contrasto elevato del sistema è cambiata, in modo simile alla classe AccessibilitySettings piattaforma UWP. Per altre informazioni, vedere la specifica dell'API ThemeSettings su GitHub.
  • AccessKeyManager.EnterDisplayMode è un nuovo metodo per visualizzare le chiavi di accesso per l'elemento attivo corrente di una radice specificata. Le chiavi di accesso sono in "modalità di visualizzazione" quando viene visualizzato un suggerimento per richiamare un comando, ad esempio premendo il tasto Alt in Paint per mostrare quali tasti corrispondono ai controlli. Questo metodo consente di attivare la modalità di visualizzazione a livello di codice.
  • Application.ResourceManagerRequested fornisce un meccanismo per fornire un diverso IResourceManager per risolvere gli URI delle risorse per gli scenari in cui l'impostazione predefinita ResourceManager non funzionerà. Per altre informazioni, vedere la specifica dell'API Application.ResourceManagerRequested in GitHub.
  • La versione di WebView2 SDK è stata aggiornata dalla versione 1661.34 alla 1823.32.
  • Popup/FlyoutBase.IsConstrainedToRootBounds = false è ora supportato, consentendo a un popup/riquadro a comparsa di estendersi all'esterno dei limiti della finestra padre. È SystemBackdrop stata aggiunta una proprietà a questi tipi per supportare l'acrilico in questi popup non vincolati. I menu per impostazione predefinita usano questa opzione per avere l'acrilico.
  • Closed, FrameworkClosed, e IsClosed sono stati aggiunti a DesktopAcrylicController e MicaController per migliorare la gestione durante l'arresto di oggetti/thread.
  • DesktopAcrylicController.Kind ora può essere impostato per scegliere tra alcune apparenze acriliche standard.
  • DispatcherQueue include alcuni nuovi eventi e helper per facilitare un arresto organizzato migliore e per le app che usano le isole per eseguire facilmente un ciclo di eventi supportato standard.
  • InputNonClientPointerSource nello spazio dei nomi Microsoft.UI.Input può essere usato per scenari personalizzati della barra del titolo per definire le regioni dell'area non destinate al client. Il codice può registrarsi per gli eventi corrispondenti, ad esempio il passaggio del mouse e fare clic sugli eventi in queste aree.
  • AppWindow include alcuni nuovi helper per ottenere un DispatcherQueue e associarlo allo stesso.
  • Il nuovo TreeView.SelectionChanged evento consente agli sviluppatori di rispondere quando l'utente o il code-behind modifica il set di nodi selezionati nel controllo TreeView.
  • Il nuovo ScrollView controllo fornisce una nuova alternativa a ScrollViewer. Questo nuovo controllo è altamente allineato nel comportamento e nell'API con il controllo esistente ScrollViewer , ma è basato su InteractionTracker, ha nuove funzionalità come le modifiche alla visualizzazione guidata dall'animazione ed è progettato anche per garantire la funzionalità completa di ItemsRepeater. Vedere Uno ScrollViewer più flessibile · Problema n. 108 · microsoft/microsoft-ui-xaml (github.com) per altri dettagli. Vari nuovi tipi, tra cui ScrollPresenter, fanno parte del modello complessivo ScrollView.
  • Il nuovo AnnotatedScrollBar controllo estende la funzionalità di una normale barra di scorrimento offrendo un modo semplice per spostarsi in un'ampia raccolta di elementi. Questa operazione viene ottenuta tramite una rotaia selezionabile con etichette che fungono da marcatori. Consente inoltre una comprensione più granulare del contenuto scorrevole visualizzando una descrizione comando quando si passa il puntatore sulla barra di scorrimento selezionabile.

Problemi noti

Correzioni di bug

  • È stato risolto un problema per cui la chiamata all'API causava l'arresto Microsoft.Windows.AppLifecycle.AppInstance.Restart("") anomalo delle app non in pacchetto. Per altre informazioni, vedere il problema 2792 su GitHub.
  • Correzione di un problema di arresto anomalo del programma di installazione introdotto nella versione 1.4-experimental1. Per altre informazioni, vedere il problema 3760 su GitHub.
  • È stato risolto un problema per cui il barrato del testo non veniva rimosso correttamente in un controllo TextBlock. Per altre informazioni, vedere il problema 1093 su GitHub.
  • È stato risolto un problema che causava un errore di spostamento maiusc+TAB in un pannello con TabFocusNavigation impostato su "Una sola volta". Per altre informazioni, vedere il Problema #1363 di GitHub.
  • È stato risolto un problema in C++/WinRT che impediva {x:Bind} di funzionare correttamente con una proprietà di un controllo XAML denominato. Per altre informazioni, vedere il problema 2721 su GitHub.
  • Correzione di un problema di AccessViolation in fase di esecuzione nelle app desktop WinUI causate dall'impostazione di DebugSettings.EnableFrameRateCounter = true. Per altre informazioni, vedere il problema 2835 su GitHub.
  • È stato risolto un problema per cui XamlTypeInfo.g.cpp non includeva le intestazioni necessarie. Per altre informazioni, vedere il problema 4907 su GitHub.
  • È stato risolto un problema di arresto anomalo causato dall'input simultaneo tramite multi-touch e mouse. Per altre informazioni, vedere il problema 7622 su GitHub.
  • È stato risolto un problema che impediva lo scorrimento di una finestra dell'app WinUI 3 attiva quando l'impostazione di sistema per disabilitare lo scorrimento delle finestre inattive sul mouse era attiva. Per altre informazioni, vedere il problema 8764 su GitHub.
  • Correzione di un arresto anomalo durante il tentativo di sottoclasse MediaPlayerElement.
  • Correzione di alcuni problemi di arresto anomalo e perdita di memoria in TreeView.
  • È stato risolto un problema di blocco dell'app che poteva verificarsi quando si usa la tastiera per spostarsi in RadioButtons.
  • Correzione di un arresto anomalo quando si usa la tastiera per spostarsi in un oggetto PipsPager.
  • Correzione del ridimensionare il contenuto di WebView2 con l'impostazione accessibilità "Dimensioni testo" nell'app Impostazioni.
  • Correzione di un arresto anomalo che potrebbe verificarsi quando le animazioni erano in esecuzione quando lo schermo è spento.
  • È stato risolto un problema di prestazioni introdotto nella versione 1.3 che aggiungeva un sovraccarico del 10% al primo layout/rendering.

Versione 1.3

Versione 1.3.3 (1.3.230724000)

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.3.

  • È stato risolto un problema a causa del quale il mouse smetteva di funzionare quando una finestra di dialogo veniva chiusa.
  • È stato risolto un problema di distribuzione che impediva l'installazione delle app a causa di una mancata corrispondenza delle versioni del pacchetto nel sistema. Per altre informazioni, vedere il problema #3740 su GitHub.
  • Correzione di un problema che interessa il posizionamento del menu di scelta rapida in Windows App SDK 1.3.
  • È stato risolto un problema che causava l'arresto anomalo di alcune app WinUI3, in alcune situazioni, quando l'app veniva chiusa perché XAML si arresta troppo presto.
  • È stato risolto un problema per cui le icone dei caratteri non si rispecchiavano correttamente nelle lingue da destra a sinistra. Per altre informazioni, vedere il problema #7661 su GitHub.
  • È stato risolto un problema che causava l'arresto anomalo di un'app al momento dello spegnimento quando le risorse venivano eliminate in un ordine non valido. Per altre informazioni, vedere il problema #7924 su GitHub.

Versione 1.3.2 (1.3.230602002)

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.3.

  • Correzione di un arresto anomalo durante l'impostazione di un cursore protetto.
  • È stato risolto un problema di prestazioni in XamlMetadataProvider durante l'avvio dell'app. Per altre informazioni, vedere il problema #8281 su GitHub.
  • È stato risolto un problema relativo ai collegamenti ipertestuali e al tocco in un controllo RichTextBlock. Per altre informazioni, vedere il problema #6513 su GitHub.
  • È stato risolto un problema relativo allo scorrimento e ai touchpad in WebView2. Per altre informazioni, vedere il problema #7772 su GitHub.
  • È stato risolto un problema per cui un aggiornamento di Windows App SDK talvolta richiedeva un riavvio di Visual Studio. Per altre informazioni, vedere il problema #3554 su GitHub.
  • Correzione di un'eccezione rumorosa all'arresto durante l'esecuzione in un debugger.

Versione 1.3.1 (1.3.230502000)

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.3.

  • È stato risolto un problema che causava l'arresto anomalo delle app durante l'impostazione di SystemBackdrop se il contenuto era Null. Per altre informazioni, vedere il problema #8416 su GitHub.
  • È stato risolto un problema che causava l'arresto anomalo delle app durante l'impostazione del titolo della finestra in XAML, una nuova funzionalità aggiunta nella versione 1.3.0. Per altre informazioni, vedere il problema #3689 su GitHub.
  • È stato risolto un problema a causa del quale una finestra si concentrava erroneamente quando il contenuto cambiava.
  • Correzione di un problema relativo alla creazione di progetti C++ con i modelli di progetto WinAppSDK 1.3.
  • Modelli aggiornati in Visual Studio Marketplace

Versione 1.3

Nelle sezioni seguenti vengono descritte le funzionalità nuove e aggiornate e i problemi noti per la versione 1.3.

In un'app esistente di Windows App SDK1.3 è possibile aggiornare il pacchetto Nuget alla versione 1.3.230331000 (vedere la sezione Aggiorna un pacchetto in Installazione e gestione pacchetti in Visual Studio usando Gestione pacchetti NuGet).

Per il runtime e l'MSIX aggiornati, vedere anche Download per il Windows App SDK.

API di sfondo XAML

Con le proprietà incorporate nella Window XAML, gli sfondi acrilico di sfondo & Mica sono ora più facili da usare nell'app WinUI 3. Per altre informazioni sulle proprietà dello sfondo Xaml, vedere la documentazione dell'API Sfondo di sistema e Sfondo Mica .

public MainWindow()
{
    this.InitializeComponent();

    this.SystemBackdrop = new MicaBackdrop();
}

Window.AppWindow

Sostituendo diverse righe di codice boilerplate, è ora possibile usare le API AppWindow direttamente da una Window tramite Window.AppWindow.

Nuove funzionalità di WinAppSDK

  • ApplicationModel.DynamicDependency: PackageDependency.PackageGraphRevisionId che sostituisce il MddGetGenerationId deprecato.
  • Responsabile ambiente: EnvironmentManager.AreChangesTracked per indicare se le modifiche apportate al responsabile ambiente possono essere monitorate nell'applicazione.
  • Un nuovo evento DebugSettings.XamlResourceReferenceFailed, viene ora generato quando non è possibile risolvere una ricerca Static/ThemeResource di riferimento. Questo evento consente di accedere a una traccia che indica il punto in cui il framework ha cercato tale chiave per aiutarti a eseguire il debug degli errori di ricerca Static & ThemeResource. Per altre informazioni, vedere la specifica dell'API degli errori di ricerca delle risorse XAML di traccia su GitHub.

Altri aggiornamenti

Problema noto

A causa di una modifica recente al compilatore xaml, un progetto esistente che viene aggiornato alla versione 1.3 potrebbe riscontrare un errore di compilazione simile al seguente in Visual Studio:

> C:\Users\user\\.nuget\packages\microsoft.windowsappsdk\\**1.3.230331000**\buildTransitive\Microsoft.UI.Xaml.Markup.Compiler.interop.targets(537,17): error MSB4064: The "PrecompiledHeaderFile" parameter is not supported by the "CompileXaml" task loaded from assembly: Microsoft.UI.Xaml.Markup.Compiler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=de31ebe4ad15742b from the path: C:\Users\user\\.nuget\packages\microsoft.windowsappsdk\\**1.2.230118.102**\tools\net472\Microsoft.UI.Xaml.Markup.Compiler.dll. Verify that the parameter exists on the task, the <UsingTask> points to the correct assembly, and it is a settable public instance property.

Ciò è causato da Visual Studio usando una DLL dell'attività del compilatore XAML memorizzata nella cache dalla versione 1.2, ma la causa è la logica MSBuild incompatibile dalla versione 1.3, come illustrato nel testo dell'errore precedente. La soluzione alternativa consiste nell'arrestare Visual Studio, riavviarlo e ricaricare la soluzione.

Version 1.2

Versione 1.2.5 (1.2.230313.1)

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.2.

  • È stato risolto un problema che causava l'arresto anomalo delle app durante l'arresto di Composition.
  • È stato risolto un problema che causava la continuazione dell'esecuzione delle animazioni delle app anche quando lo schermo è spento.
  • È stato risolto un problema che causava l'errore dell'input tramite mouse e tocco in WebView2 quando si verificava simultaneamente l'input del mouse e della tastiera. Per altre informazioni, vedere il problema #3266 su GitHub.

Versione 1.2.4 (1.2.230217.4)

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.2.

  • È stato risolto un problema che causava la mancata possibilità di regolare le Impostazioni di controllo dell'account utente per le app autonome. Per altre informazioni, vedere il problema #3376 su GitHub.
  • È stato risolto un problema che causava la restituzione delle notifiche push a un'ora di scadenza imprecisa con PushNotificationChannel::ExpirationTime. Per altre informazioni, vedere il problema #3300 su GitHub.
  • È stato risolto un problema che causava la considerazione di numeri negativi "non validi" quando passava un valore doppio come parametro in una funzione x:Bind.
  • Diverse correzioni per aggiornare winUI VSIX. Questi aggiornamenti includevano la semplificazione del modello di progetto dipAwareness in app.manifest, la rimozione dei modelli UWP, l'aggiornamento dei file di risorse localizzati, l'aggiunta dell'ID telefono per sbloccare l'invio dell'archivio e la rimozione dell'informativa sul copyright e della licenza. Per altre informazioni, vedere Problemi di GitHub #5659, #3205, #3323, #3322, #3143.

Versione 1.2.3 (1.2.230118.102)

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.2.

  • È stato risolto un problema che causava l'arresto anomalo delle app WinUI 3 quando più finestre vengono chiuse.
  • È stato risolto un problema che causava un arresto anomalo dell'app quando vengono richiesti due o più riferimenti all'interfaccia ThreadPoolTimer. Per altre informazioni, si vedano i Problemi #7260 e #7239 su GitHub.
  • È stato risolto un problema che causava l'esecuzione di tutte le app MSIX a progetto singolo come attendibilità totale. Per altre informazioni, vedere il problema #7766 su GitHub.

Versione 1.2.2 (1.2.221209.1)

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.2.

  • È stato risolto un problema che causava l'installazione dei pacchetti dello Store e del sideload (ad esempio dal programma di installazione, da NuGet e dal programma di avvio automatico) se l'altro è già installato. Per altre informazioni, vedere il problema #3168 su GitHub.
  • È stato risolto un problema che causava effetti di elasticità mancanti e curve di animazione durante lo scorrimento con un touchpad. Per altre informazioni, vedere il problema #7874 su GitHub.
  • Correzione del problema in ListView che causa perdite di memoria.
  • È stato risolto un problema che causava il mancato rispetto della proprietà Foreground dopo il passaggio del mouse. Per altre informazioni, vedere il problema #7208 su GitHub.
  • È stato risolto un problema che causava un'eccezione non necessaria quando non c'è mediaPlaybackItem in un oggetto MediaElement.
  • È stato risolto un problema che causava la visualizzazione di un frame bianco in MediaPlayerElement nelle transizioni di contenuto.
  • Correzione di problemi aggiuntivi che causano la mancata intercettazione di eccezioni da altri thread da parte di App.UnhandledException. Per altre informazioni, si vedano i Problemi #1259 e #5221 su GitHub.

Versione 1.2.1 (1.2.221116.1)

Si tratta di una versione di manutenzione di Windows App SDK che include una correzione di bug critica per la versione 1.2.

È stato risolto un problema che causava un arresto anomalo all'avvio nelle app WinUI 3 C++ durante l'aggiunta di un controllo WebView2 o TextBox. Per altre informazioni, vedere il problema #7911 & #3117 su GitHub.

Version 1.2

Nelle sezioni seguenti vengono descritte le funzionalità nuove e aggiornate, le limitazioni e i problemi noti per 1.2.

Nota

Visual Studio 2019 e .NET 5 non sono più supportati per la compilazione di app C# (vedere Passaggio di Windows App SDK 1.2 a C# WinRT 2.0). Sono necessari Visual Studio 2022 e una delle versioni seguenti di .NET SDK: 6.0.401 (o versioni successive), 6.0.304, 6.0.109. Al rilascio, WinAppSDK 1.2 supporterà anche .NET 7.

Per aggiornare la versione di .NET SDK, installare la versione più recente di Visual Studio 2022 o visitare Download .NET. Durante l'aggiornamento del pacchetto NuGet senza la versione richiesta di .NET SDK, quando si aggiorna il pacchetto NuGet verrà visualizzato un errore simile al seguente: "Questa versione di WindowsAppSDK richiede NET 6+ e WinRT.Runtime.dll versione 2.0 o successiva". Per aggiornare il progetto da .NET 5.0 a .NET 6.0, aprire il file di progetto e modificare "TargetFramework" in net6.0 e "Versione del sistema operativo di destinazione" al valore appropriato ,ad esempio net6.0-windows10.0.19041.0.

Widget di terze parti in Windows

La scheda widget è stata introdotta per la prima volta in Windows 11 ed è stata limitata alla visualizzazione di widget predefiniti. I widget di Windows sono contenitori di interfaccia utente di piccole dimensioni che visualizzano testo e grafica nell'apposita scheda, associati a un'app installata nel dispositivo. Con Windows App SDK, come sviluppatori di terze parti è ora possibile creare widget per le app Win32 in pacchetto e testarle localmente nella scheda widget di Windows 11.

Per altre informazioni sui widget, vedere Panoramica dei widget.

Per iniziare a sviluppare widget per l'app, vedere la documentazione di sviluppo del provider di servizi Widget e concetti fondamentali sulla progettazione dei widget per prerequisiti, indicazioni e procedure consigliate.

I prerequisiti per questa versione includono quanto segue:

  • Modalità sviluppatore abilitata nel computer di sviluppo.
  • Il computer di sviluppo esegue una versione di Windows dal canale dev di Windows Insider Preview (WIP) maggiore o uguale a 25217 con scheda widget versione 521.20060.1205.0 o successiva.

Limitazioni note durante lo sviluppo di widget

  • I widget di terze parti possono essere testati solo localmente nei dispositivi registrati in WIP per questa versione di anteprima.
  • I widget possono essere creati solo per le app Win32 incluse nel pacchetto. I widget per l'App Web Progressiva (PWA) devono essere supportati come parte di Microsoft Edge 108.

DisplayInformation

Le app desktop di Windows possono ora supportare le immagini High dynamic range (HDR) e Gestione colori automatica (ACM) tramite la classe DisplayInformation in WinAppSDK. La classe DisplayInformation consente di monitorare le informazioni correlate alla visualizzazione di un'applicazione. Sono inclusi gli eventi per consentire ai client di monitorare le modifiche nella visualizzazione Applicazione che influiscono sulle visualizzazioni in cui risiede la visualizzazione, nonché sulle modifiche apportate agli schermi che possono influire sulla visualizzazione dell'applicazione.

WinUI 3

Le app WinUI 3 possono riprodurre audio e video con i controlli di riproduzione multimediale MediaPlayerElement e MediaTransportControls. Per altre info su come e quando usare i controlli multimediali, vedere Lettori multimediali.

WinUI 3 è stato aggiornato con i controlli, gli stili e i comportamenti più recenti di WinUI 2.8. Questi aggiornamenti includono l'aggiunta del comando InfoBadge, miglioramenti alla modalità di accessibilità e contrasto elevato, nonché correzioni di bug tra i comandi. Per altri dettagli, vedere le note sulla versione per WinUI 2.7 e WinUI 2.8.

Problemi risolti

Limitazioni note

  • Quando si crea un nuovo progetto WinUI 3 con Visual Studio 2022 17.4.0, farà riferimento a una versione di anteprima di WinAppSDK. Usare NuGet Gestione pacchetti per aggiornare il riferimento a questa versione.
  • L'impostazione di MediaPlayerElement.Source su un URI relativo (ms-appx/ms-resource) ha esito negativo nelle app non incluse nel pacchetto. La soluzione alternativa consigliata consiste nel convertire l'URI ms-appx:/// relativo in un URI file:/// completamente risolto.

Trimming per le app sviluppate con .NET

Gli sviluppatori .NET possono ora pubblicare app WinAppSDK tagliate. Con CsWinRT 2.0, le proiezioni C#/WinRT distribuite in WinAppSDK sono ora trimmabili. La pubblicazione dell'app sottoposta a trimming può ridurre il footprint del disco dell'app rimuovendo qualsiasi codice inutilizzato dai file binari trimmabili. Le app possono anche visualizzare un miglioramento delle prestazioni di avvio. Con un'app Hello World di base, è stato riscontrato un miglioramento del footprint del disco circa l'80% e un miglioramento delle prestazioni di avvio del 7% quando è stato pubblicato. Con la raccolta WinUI, è stato riscontrato un miglioramento del footprint del disco del 45%.

Per altre informazioni su come abilitare il trimming, trimmare le limitazioni (ad esempio la riflessione sui tipi trimmabili) e gli avvisi: a tale proposito, vedere Trim self-contained deployments and executables (Trimming delle distribuzioni autonome e degli eseguibili). Gli sviluppatori devono testare accuratamente le proprie app dopo il trimming per assicurarsi che tutto funzioni come previsto. Per altre informazioni su queste modifiche, vedere il problema #2478 su GitHub.

Supporto per Visual Studio Arm64

Come prima di Project Reunion (ora WinAppSDK) 0.5, le app sviluppate con WinAppSDK erano in grado di essere eseguite su Arm64. A partire da Visual Studio 17.3 Preview 2, è possibile sviluppare applicazioni native con WinAppSDK nei dispositivi Arm64.

Per iniziare a sviluppare in un dispositivo Arm64, vedere Windows in Arm e Arm64 Visual Studio.

Notifications

AppNotificationBuilder è stato introdotto come alternativa al payload XML per la creazione e la definizione delle notifiche dell'app.

Per informazioni sull'utilizzo, vedere la specifica AppNotificationBuilder su GitHub.

Inoltre, si veda Avvio rapido: notifiche di Windows App SDK per un esempio di come creare un'applicazione di Windows desktop che invia e riceve notifiche di app locali.

Modifica di rilievo

Per le notifiche push, quando si effettua una chiamata di richiesta canale, le app dovranno usare l'ID oggetto di Azure anziché l'ID app Azure. Per informazioni dettagliate sulla ricerca dell'ID oggetto di Azure, vedere Avvio rapido: notifica push in Windows App SDK.

Problema risolto

PushNotificationManager.IsSupported eseguirà un controllo per la modalità con privilegi elevati. Restituirà false se l'app è elevata.

Limitazioni note (notifiche)

Windowing

La personalizzazione completa della barra del titolo è ora disponibile in Windows 10, versione 1809 e successive tramite la classe AppWindowTitleBar. È possibile impostare AppWindowTitleBar.ExtendsContentIntoTitleBar per true estendere il contenuto nell'area della barra del titolo e SetDragRectangles per definire le aree di trascinamento (oltre ad altre opzioni di personalizzazione).

Se è stata usata la proprietà AppWindowTitleBar.IsCustomizationSupported per verificare se è possibile richiedere le API AppWindowTitleBar, ora restituisce true nelle versioni supportate di Windows App SDK Windows 10 (1809 e versioni successive).

Limitazioni note (Windowing)

Le personalizzazioni della barra del titolo di base non sono supportate in Windows 10. Ad esempio: BackgroundColor, InactiveBackgroundColor, ForegroundColor, InactiveForegroundColor e IconShowOptions. Se si richiedono queste proprietà, queste verranno ignorate automaticamente. Tutte le altre API AppWindowTitleBar operano in Windows 10, versione 1809 e successive. Per le API colore del pulsante didascalia (tra le altre) e Height, ExtendsContentIntoTitleBar è necessario impostare su true, altrimenti verranno ignorate automaticamente.

Controllo di accesso

Introdotto security.accesscontrol.h con la funzione GetSecurityDescriptorForAppContainerNames per semplificare e semplificare la condivisione di oggetti denominati tra processi in pacchetto e API Win32 generali. Questo metodo accetta un elenco di nomi di famiglia di pacchetti (PFN) e maschere di accesso, oltre a restituire un descrittore di sicurezza. Per altre informazioni, vedere la specifica GetSecurityDescriptorForAppContainerNames spec su GitHub.

Altre limitazioni e problemi noti

Importante

Quando si fa riferimento a WinAppSDK 1.2 da un progetto, è possibile che venga visualizzato un errore simile al seguente: "Downgrade del pacchetto rilevato: Microsoft.Windows.SDK.BuildTools da 10.0.22621.1 a 10.0.22000.194.", causato da riferimenti incompatibili al pacchetto dal progetto dell'app e dal pacchetto WinAppSDK. Per risolvere questo problema, è possibile aggiornare il riferimento nel progetto a una versione più recente e compatibile di Microsoft.Windows.SDK.BuildTools.

  • Gli unit test potrebbero non riuscire con un REGDB_E_CLASSNOTREG errore nel riquadro output Test in Visual Studio. Come soluzione alternativa, è possibile aggiungere <WindowsAppContainer>true</WindowsAppContainer> al file di progetto.
  • .NET PublishSingleFile non è supportato.
  • Le impostazioni predefinite del programma di avvio automatico e dell'inizializzatore automatico WinRT RegFree sono (ora) impostate solo per i progetti che producono un elemento eseguibile (OutputType=Exe o WinExe). Ciò previene l'aggiunta di inizializzatori automatici nelle DLL della libreria di classi e in altri file non eseguibili per impostazione predefinita.
    • Se è necessario un inizializzatore automatico in un file non eseguibile ,ad esempio una DLL di test caricata da un eseguibile generico che non inizializza il programma di avvio automatico, è possibile abilitare in modo esplicito un inizializzatore automatico nel progetto tramite <WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize> o <WindowsAppSdkUndockedRegFreeWinRTInitialize>true</WindowsAppSdkUndockedRegFreeWinRTInitialize>.
  • Microsoft.WindowsAppRuntime.Release.Net.dll è sempre il file binario Arm64 e non funziona per le app x86 e x64. Quando si richiede in modo esplicito l'API Bootstrap non usare l'assembly Microsoft.WindowsAppRuntime.Release.Net.dll. Come soluzione alternativa, è possibile includere costanti di versione in questo file di origine distribuito con il pacchetto NuGet: '.. \include\WindowsAppSDK-VersionInfo.cs' o usare l'inizializzatore automatico.

Version 1.1

La versione più recente disponibile della derivazione 1.1.x del canale stabile di Windows App SDK è la versione 1.1.5. 1.1.x supporta tutte le funzionalità del canale stabile (vedere la sezione Funzionalità disponibili per canale di rilascio in Canali di rilascio Windows App SDK).

Versione 1.1.5

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.1.

Correzioni di bug

  • È stato risolto un problema per cui l'acrilico non funziona se Mica è abilitata. Per altre informazioni, vedere il problema 7200 su GitHub.
  • È stato risolto un problema che causava l'esito negativo dell'esecuzione delle app che dipendono dal programma di installazione WindowsAppRuntime (ad esempio le app non incluse nel pacchetto) nei computer Windows 10 ARM64. Per altre informazioni, vedere il problema 2564 su GitHub.

Versione 1.1.4

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.1.

Correzioni di bug

  • Correzione della regressione dalla versione 1.0.x che causava l'arresto anomalo di ListView, TreeView e altri controlli 'List' durante lo scorrimento con molti elementi. Per altre informazioni, vedere il problema 7230 su GitHub.
  • È stato risolto un problema relativo a DispatcherQueue che causava la mancata chiamata dei callback accodati.
  • È stato risolto un problema che causava un arresto anomalo dell'app quando si richiede DeploymentManager.Initialize più volte nella stessa sessione dell'app.
  • È stato risolto un problema che causava l'errore di compilazione delle app C# in Arm64 Visual Studio. Per altre informazioni, vedere il problema 7140 su GitHub.
  • Correzione di un arresto anomalo intermittente nel codice di creazione dell'immagine XAML a causa di una gestione errata degli errori.
  • È stato risolto un problema di perdita di memoria durante il collegamento di un gestore eventi in ItemsRepeater con un userControl padre. Per altre informazioni, vedere il problema 6123 su GitHub.
  • È stato risolto un problema di compilazione che causava un errore di compilazione in Visual Studio 17.3 quando un progetto di app è configurato per abilitare gli aggiornamenti automatici del pacchetto quando viene trasferita localmente (ad esempio.appinstaller). Per altre informazioni, vedere il problema 2773.
  • È stato corretto il problema che causava la chiamata di Initialize da parte delle applicazioni pacchettizzate distribuite in Store (necessaria ad esempio per Push), che veniva denominata in modo ridondante alla restituzione di DeploymentManager::GetStatus Package Install Needed quando sono già installati i pacchetti main e singleton. Ciò ha causato una riduzione delle prestazioni all'avvio dell'app.
  • È stato risolto un problema che causava un'eccezione nelle app a istanza singola quando l'evento di pulizia doveva essere ignorato se non poteva essere aperto. Per ulteriori informazioni, vedere le informazioni di riferimento su GitHub.

Versione 1.1.3

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.1.

Correzioni di bug

  • È stato risolto un set correlato di problemi a causa del quale XAML si arresta in modo anomalo quando si include un controllo ProgressBar, ProgressRing, PipsPager, PersonPicture o Expander nella prima pagina dell'app. Per altre informazioni, vedere il problema 7164 su GitHub.
  • È stato risolto un problema per cui il programma di installazione x64 non riesce a installare il runtime di Windows App SDK. Per altre informazioni, vedere il problema 2713 su GitHub.
  • È stato risolto un problema che causava l'errore di installazione di WindowsAppRuntime se è installata una versione successiva del runtime. Vedere la discussione 2708 su GitHub per ulteriori informazioni.

Versione 1.1.2

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.1.

Correzioni di bug

  • È stato risolto un problema a causa del quale XAML si arresta in modo anomalo durante la chiusura di una finestra mentre è aperta una finestra di dialogo. Per altre informazioni, vedere il problema 1032 su GitHub.
  • Aggiunta di <auto-generated> tag nei file C# per impedire avvisi StyleCop. Per altre informazioni, vedere il problema 4526 su GitHub.
  • È stato risolto un problema che causava un errore di violazione di accesso e un arresto anomalo durante la chiamata a MddBootstrapInitialize quando il pacchetto del framework corrispondente non è installato. Per altre informazioni, vedere il problema 2592 su GitHub.
  • È stato risolto un problema a causa del quale i modelli di elementi WinUI 3 C# mancavano in Visual Studio. Per altre informazioni, vedere il problema 7148 su GitHub.
  • È stato risolto un problema a causa del quale il programma di installazione windowsAppRuntime ha esito negativo quando viene eseguito come utente di sistema. Per altre informazioni, vedere il problema 2546 su GitHub.

Versione 1.1.1

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.1.

Correzioni di bug

  • Sono stati risolti problemi che causano un arresto anomalo delle app durante un'operazione di trascinamento della selezione. Per altre informazioni, vedere il problema 7002 su GitHub.
  • È stato risolto un problema che causava la scomparsa della barra del titolo quando si passa a AppWindowPresenterKind da FullScreen a Default.
  • È stato risolto un problema a causa del quale le API del programma di avvio automatico come ApiInformation.IsPropertyPresent e ApiInformation.IsMethodPresent causavano eccezioni non gestite nelle app non incluse nel pacchetto. Per altre informazioni, vedere il problema 2382 su GitHub.
  • È stato risolto un problema che causava il blocco dell'app durante l'ottimizzazione dell'applicazione con input penna.

Version 1.1

Nelle sezioni seguenti vengono descritte le funzionalità nuove e aggiornate, le limitazioni e i problemi noti per 1.1.

Nota

Per gli sviluppatori C#, è necessaria una delle seguenti versioni di .NET SDK: 6.0.202, 6.0.104, 5.0.407, 5.0.213 (o versione successiva). Per aggiornare la versione di .NET SDK, visitare .NET Download o aggiornare la versione più recente di Visual Studio. Senza la versione richiesta di .NET SDK, quando si aggiorna il pacchetto NuGet verrà visualizzato un errore simile al seguente: "Questa versione di WindowsAppSDK richiede WinRT.Runtime.dll versione 1.6 o successiva".

Ciclo di vita & riavvio dell'app

Le app sono ora in grado di avviare un riavvio esplicito con argomenti specifici & lo stato sulla base del RegisterApplicationRestart per la registrazione con il sistema operativo da riavviare in scenari di aggiornamento, blocco & riavvio.

Nuove funzionalità:

  • Qualsiasi app desktop in pacchetto o non in pacchetto può terminare e riavviarsi al comando e avere accesso a una stringa della riga di comando arbitraria per l'istanza riavviata usando l'API AppInstance.Restart() .
    • Si tratta di una versione lifted e sincrona dell'API UWP RequestRestartAsync() che consente il riavvio con argomenti e restituisce un AppRestartFailureReason se il riavvio non riesce.
    • Per informazioni sull'utilizzo e sulle informazioni di riferimento, vedere la documentazione sull'API di riavvio in GitHub.

WinUI 3

WinUI 3 è un framework di esperienza utente nativa per Windows App SDK. Questa versione include nuove funzionalità di WinAppSDK 1.0 e diversi miglioramenti della stabilità delle versioni di anteprima 1.0 & 1.1.

Nuove funzionalità:

Bug risolti:

  • Correzione del problema relativo all'uso di Mica per cui l'app si arresta in modo anomalo quando una finestra è divisa equamente per due schermate. Per altre informazioni, vedere il problema 7079 su GitHub.
  • È stato risolto un problema che causava l'arresto anomalo delle app C# con WebView2 all'avvio quando il runtime C/C++ (CRT) non è installato aggiornando WebView2 SDK da 1020.46 a 1185.39.
  • È stato risolto un problema che creava alcuni arrotondamenti degli angoli per mostrare una sfumatura quando dovrebbero presentare un colore a tinta unita. Per ottenere altre informazioni, vedere problema 6076 & problema 6194 su GitHub.
  • È stato risolto un problema per cui gli stili aggiornati mancavano da generic.xaml.
  • Correzione del problema del ciclo di layout che causa l'arresto anomalo di un'app durante lo scorrimento fino al termine di un controllo ListView. Per altre informazioni, vedere il problema 6218 su GitHub.
  • È stato risolto un problema per cui gli utenti non sono in grado di rilasciare un elemento quando è abilitato il trascinamento della selezione. Per altre informazioni, vedere il problema 7008 su GitHub.

Limitazioni note:

  • Quando si usa una barra del titolo personalizzata, i controlli didascalia non cambiano colore in caso di modifica del tema.
  • XAML si arresta in modo anomalo quando un utente chiude una finestra mentre è aperta una finestra.

Distribuzione

Nuove funzionalità:

Limitazioni note:

  • L'esecuzione del programma di installazione di Windows App Runtime (WindowsAppRuntimeInstall.exe) richiede l'abilitazione del trasferimento locale. Vedere il problema 2469 su GitHub per ulteriori informazioni.
  • La creazione di un pacchetto MSIX tramite i menu progetto di Visual Studio può arrestare Visual Studio in alcuni scenari. Questo problema verrà risolto in Visual Studio versione 17.3 Preview 2 e per la manutenzione a 17.2. Se si verifica questo problema, è possibile risolvere il problema generando un file MSIX dalla riga di comando, passando a un progetto non incluso nel pacchetto o ripristinando Windows App SDK 1.0.
  • Le applicazioni autonome in pacchetto con MSIX non sono supportate nel 1809 causando un arresto anomalo dell'app all'avvio.

Elevazione

Le app sono ora in grado di essere eseguite con privilegi elevati.

Limitazioni note:

Gestione delle variabili di ambiente

Gestione variabili di ambiente è una nuova API introdotta in Windows App SDK 1.1. Gestione variabili di ambiente consente agli sviluppatori di accedere e modificare le variabili di ambiente nell'ambito di processo, utente e computer da un'unica superficie API.

Se Gestione variabili di ambiente viene usato da un'applicazione in pacchetto, vengono registrate tutte le operazioni delle variabili di ambiente. Quando il pacchetto viene rimosso, vengono ripristinate tutte le operazioni sulle variabili di ambiente.

Nuove funzionalità:

  • Ottenere e impostare le variabili di ambiente nell'ambito del processo, dell'utente e del computer.
  • La variabile di ambiente automatica viene ripristinata quando viene rimosso un pacchetto che usa una gestione variabili di ambiente.
  • Include API specifiche per PATH e PATHEXT.

Limitazioni note:

  • Solo disponibile in Windows 11

MRT Core

MRT Core è una versione semplificata del moderno Sistema di gestione delle risorse di Windows che viene distribuito come parte di Windows App SDK.

Problemi risolti:

  • Un problema che causa l'indicizzazione delle risorse per impostazione predefinita quando viene aggiunto un file di risorse tramite l'interfaccia utente di Visual Studio è stato risolto in .NET SDK 6.0.300. Se si usa una versione precedente di .NET SDK, continuare a usare la soluzione alternativa documentata nelle note sulla versione 1.0. Vedere il problema 1786 su GitHub per ulteriori informazioni.
  • È stato risolto un problema che causava la mancata compilazione corretta dell'URI della risorsa nelle app WinUI 3 C++ non in pacchetto in Visual Studio 2022 17.2. Se si usa una versione precedente di Visual Studio, aggiornare Visual Studio alla versione 17.2 per ricevere questa correzione.

Limitazioni note:

  • Nei progetti .NET i file di risorse copiati nella cartella del progetto non vengono indicizzati in F5 se l'app è già stata compilata. Come soluzione alternativa, ricompilare l'app. Per altre informazioni, vedere il problema 1503 su GitHub.

Per altre informazioni, vedere Gestire le risorse con MRT Core.

Notifications

Gli sviluppatori di app incluse nel pacchetto (inclusi quelli con posizione esterna) e le app non incluse nel pacchetto possono ora inviare notifiche di Windows.

Nuove funzionalità:

  • Supporto per le notifiche app incluse nel pacchetto e non incluse nel pacchetto.
    • Gli sviluppatori possono inviare notifiche dell'app, note anche come notifiche di tipo avviso popup, localmente o dal proprio servizio cloud. Consultare Panoramica delle notifiche dell'app.
  • Supporto per le notifiche push per le app incluse nel pacchetto e non incluse nel pacchetto.

Limitazioni note:

  • L'invio di notifiche da un'app con privilegi elevati non è supportato. PushNotificationManager::IsSupported() non eseguirà un controllo per la modalità con privilegi elevati.

Windowing

Per semplificare l'accesso alla programmazione alle funzionalità implementate in USER32.dll (vedi Windows e messaggi), questa versione presenta più funzionalità in AppWindow sé.

Nuove funzionalità:

  • Le app con finestre esistenti hanno un maggiore controllo sulla modalità di visualizzazione di una finestra richiamando AppWindow.ShowOnceWithRequestedStartupState, ovvero l'equivalente di ShowWindow(SW_SHOWDEFAULT).
  • Le app possono visualizzare, ridurre al minimo o ripristinare una finestra specificando se la finestra deve essere attivata o meno al momento dell'esecuzione della chiamata.
  • Le app possono a questo punto determinare dimensioni specifiche per le misure dell'area client della finestra nelle coordinate Win32 senza dover calcolare il ridimensionamento dell'area non client per ottenere una dimensione specifica dell'area client.
  • Sono disponibili API WinRT aggiuntive per supportare la gestione degli ordini z delle finestre basate sulla funzionalità SetWindowPos’s hWndInsertAfter.
  • Le app che disegnano barre del titolo personalizzate con AppWindowTitleBar.ExtendsContentIntoTitleBar possono impostare un'opzione PreferredTitleBarHeight. È a quel punto possibile scegliere tra una barra del titolo di altezza standard o una barra del titolo alta che offre più spazio per il contenuto interattivo. Vedere Barra del titolo nelle linee guida per la progettazione fluente in modo da avere consigli su quando usare una barra del titolo alta.

Problemi risolti:

  • Quando il relatore a schermo intero viene richiamato per la prima volta, la finestra ora si adatta correttamente all'intera schermata. Per altre informazioni, vedere il problema 1853 su GitHub.
  • Windows creato con ha AppWindow::GetFromWindowId come OverlappedPresenter relatore predefinito, ma non presenta restrizioni in termini di modifiche agli stili delle finestre provenienti da altre API. Windows creato con AppWindow::Create avrà le protezioni predefinite del relatore sin dall'inizio. Per altre informazioni, vedere il problema 2049 su GitHub.
  • L'uso dell'API OverlappedPresenter.SetBorderAndTitlebar per nascondere pulsanti e bordi didascalia genera un bordo superiore di 1px quando viene ingrandito. Il problema è stato risolto. Per altre informazioni, vedere il problema 1693 su GitHub.

Limitazioni note:

  • Quando si usa l'API AppWindowTitlebar per personalizzare i colori della barra del titolo standard, l'icona e il testo non sono allineati rispetto alla barra del titolo standard. Per altre informazioni, vedere il problema 2459 su GitHub.

  • Quando si risolve il problema 2049 di GitHub (visto sopra), è stato introdotto il bug seguente: se si applica un AppWindowPresenter a un AppWindow recuperato da GetFromWindowId, modificare uno stile di finestra rilevato da tale relatore tramite la chiamata di USER32 API e quindi provare a ripristinare lo stato precedente della finestra riapplicando il relatore predefinito Se si fa affidamento su qualsiasi relatore nell'app e si usano chiamate a USER32 per modificare gli stili di finestra al momento dell'applicazione di un relatore non predefinito, potrebbe essere necessario aggiungere una soluzione alternativa per garantire il comportamento corretto della finestra fino a quando non viene eseguito il servizio di questo bug. È possibile usare il frammento di codice seguente come modello per risolvere il problema:

    AppWindow m_appWindow;
    OverlappedPresenter m_defaultPresenter;
    
    private void EnterFullScreen_Click(object sender, RoutedEventArgs e)
    {
        // Capture the default presenter.
        m_defaultPresenter = m_appWindow.Presenter as OverlappedPresenter;
    
        // Opt in the default overlapped presenter so it can control various aspects of the AppWindow.
        m_defaultPresenter.IsAlwaysOnTop = m_defaultPresenter.IsAlwaysOnTop;
        m_defaultPresenter.IsResizable = m_defaultPresenter.IsResizable;
        m_defaultPresenter.IsMinimizable = m_defaultPresenter.IsMinimizable;
        m_defaultPresenter.IsMaximizable = m_defaultPresenter.IsMaximizable;
        m_defaultPresenter.SetBorderAndTitleBar(m_defaultPresenter.HasBorder, m_defaultPresenter.HasTitleBar);
    
        m_appWindow.SetPresenter(AppWindowPresenterKind.FullScreen);
    }
    
    private void ExitFullScreen_Click(object sender, RoutedEventArgs e)
    {
        m_appWindow.SetPresenter(AppWindowPresenterKind.Default);
    }
    

C#/WinRT

I componenti Windows Runtime C#, inclusi i controlli personalizzati WinUI, sono ora supportati. Ciò consente agli autori di componenti di distribuire componenti di runtime creati da C#a qualsiasi linguaggio compatibile con WinRT (ad esempio, C++/WinRT). Per iniziare, vedere Procedura dettagliata: creazione di un componente C# con controlli WinUI 3 e utilizzo da un'app C++/WinRT che usa Windows App SDK e l'esempio in GitHub .

Altre limitazioni e problemi noti

  • Non è possibile compilare app che fanno riferimento a un pacchetto che dipende da WebView2 (come Microsoft.Identity.Client). Ciò dipende da file binari in conflitto in fase di compilazione. Vedere il problema 2492 su GitHub per ulteriori informazioni.
  • L'uso di dotnet build con un progetto di libreria di classi C# WinAppSDK potrebbe comportare un errore di compilazione "Impossibile caricare l'attività Microsoft.Build.Packaging.Pri.Tasks.ExpandPriContent". Per risolvere questo problema, impostare <EnableMsixTooling>true</EnableMsixTooling> nel file di progetto.
  • Nei modelli WinAppSDK predefiniti l'annotazione è MaxVersionTested="10.0.19041.0" mentre dovrebbe essere "10.0.22000.0". Per il supporto completo di alcune funzionalità, in particolare UnlockedDEHs, aggiornare MaxVersionTested a "10.0.22000.0" nel file di progetto.

Version 1.0

La versione più recente disponibile della derivazione 1.0.x del canale stabile di Windows App SDK è la versione 1.0.4. 1.0.x supporta tutte le funzionalità del canale stabile (vedere la sezione Funzionalità disponibili per canale di rilascio in Canali di rilascio Windows App SDK).

Versione 1.0.4

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.0.

Correzioni di bug

  • È stato risolto un problema che causava l'uso di AppBars quando veniva usato come Page.TopAppBar o Page.BottomAppBar per non eseguire il rendering sullo schermo.
  • Correzione del problema per cui le app con un nome di pacchetto di 12 caratteri o meno che usano un controllo WinUI da MUXControls.dll si arresteranno immediatamente in modo anomalo. Per altre informazioni, vedere il problema 6360 su GitHub.
  • Correzione dei problemi di input tattile che causano problemi con i tasti di scelta rapida e altri scenari. Per altre informazioni, vedere il problema 6291 su GitHub.
  • È stato risolto un problema che causava l'errore di distribuzione delle app in pacchetto con MSIX o distribuite come self-contained.
  • Sono stati risolti problemi che causano un arresto anomalo delle app durante un'operazione di trascinamento della selezione. Per altre informazioni, vedere il problema 7002 su GitHub.

Versione 1.0.3

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.0.

Correzioni di bug

  • È stato risolto un problema che causava l'arresto anomalo delle app C# con WebView2 all'avvio quando il runtime C/C++ (CRT) non è installato.
  • Correzione dei problemi di input tattile che causano problemi con i tasti di scelta rapida e altri scenari. Per altre informazioni, vedere il problema 6291 su GitHub.

Nota: in genere non si aggiungono funzionalità in una versione di manutenzione, ma la correzione WebView2 di questa versione richiede l'aggiornamento alla versione più recente di WebView2 SDK (da 1020.46 a 1185.39). Per altre informazioni sul runtime WebView2, vedere Note sulla versione per WebView2 SDK 1.0.1185.39 e Distribuzione dell'app e WebView2 Runtime .

Versione 1.0.2

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 1.0.

Correzioni di bug

  • Correzione del problema del ciclo di layout che causa l'arresto anomalo di un'app durante lo scorrimento fino al termine di un controllo ListView. Per altre informazioni, vedere il problema 6218 su GitHub.
  • È stato risolto un problema che causava l'arresto anomalo delle app C# all'avvio quando il runtime C/C++ (CRT) non è installato. Tuttavia, CRT è ancora necessario per le app C# che usano WebView2. Per altre informazioni, vedere il problema 2117 su GitHub.
  • È stato risolto un problema per cui le applicazioni con MSIX a progetto singolo non generavano un file con estensione appinstaller. Per altre informazioni, vedere il problema 1821 su GitHub.
  • È stato risolto un problema per cui le applicazioni WinUI non supportavano .NET 6 dotnet build.

Versione 1.0.1

Si tratta di una versione di manutenzione di Windows App SDK che include correzioni di bug critiche e supporto per più finestre per la versione 1.0.

Correzioni di bug

  • È stato risolto un problema che causava la mancata compilazione di MddBootstrapAutoinitializer con implicitUsing abilitati. Per altre informazioni, vedere il problema 1686 su GitHub.
  • È stato risolto un problema a causa del quale lo stato attivo in WebView2 andrebbe perduto in modo imprevisto causando problemi di input e selezione. Per ottenere altre informazioni, vedere questo problema 5615 & problema 5570 su GitHub.
  • È stato risolto un problema che causava l'impossibilità di fare clic sulla barra degli strumenti in-app in Visual Studio quando si usa una barra del titolo personalizzata in un'app WinUI 3.
  • È stato risolto un problema che causava la mancata visualizzazione del layout di snap quando si usa una barra del titolo personalizzata in un'app WinUI 3. Per ottenere altre informazioni, vedere questo problema 6333 & problema 6246 su GitHub.
  • È stato risolto un problema che causava un'eccezione durante l'impostazione della proprietà Window.ExtendsContentIntoTitleBar quando window.SetTitlebar è stato chiamato con un UIElement ancora in fase di caricamento.
  • È stato risolto un problema per cui le app MSIX a progetto singolo non supportavano dotnet build.
  • È stato risolto un problema che causava l'installazione di app non in pacchetto dopo l'installazione di un'app in pacchetto. Per altre informazioni, vedere il problema 1871 su GitHub.
  • Correzione del problema di riduzione delle prestazioni durante le operazioni di trascinamento del mouse.
  • Correzione dell'arresto anomalo durante la chiamata a GetWindowIdFromWindow() nelle app non in pacchetto. Vedere la discussione 1891 su GitHub per ulteriori informazioni.

Le limitazioni e i problemi noti per la versione 1.0 si applicano anche alla versione 1.0.1.

Inoltre, per le app con barre del titolo personalizzate, sono state apportate modifiche in questa versione (e sono stati risolti numerosi problemi) che includono correzioni alla finestra di vetro usata per le operazioni di trascinamento della selezione. La raccomandazione consiste nell'usare i valori e i comportamenti predefiniti (dare loro un tentativo!). Se la barra del titolo usa i margini in modo che i pulsanti di didascalia predefiniti siano interattivi, è consigliabile visualizzare l'area di trascinamento impostando lo sfondo della barra del titolo su rosso e quindi modificando i margini per estendere l'area di trascinamento ai controlli didascalia.

Nuove funzionalità

Abbiamo stabilizzato e abilitato la creazione di più finestre nello stesso thread nelle applicazioni WinUI 3. Per altre informazioni, vedere problema n. 5918.

Version 1.0

Nelle sezioni seguenti vengono descritte le funzionalità nuove e aggiornate, le limitazioni e i problemi noti per 1.0.

WinUI 3

WinUI 3 è un framework di esperienza utente nativa per Windows App SDK. In questa versione sono state aggiunte più nuove funzionalità da Windows App SDK 0.8 e sono stati stabilizzati problemi dalle versioni di anteprima 1.0.

Nuove funzionalità e aggiornamenti

  • Sono stati aggiunti nuovi controlli (PipsPager, Expander, BreadcrumbBar) e sono stati aggiornati i controlli esistenti per riflettere gli stili di Windows più recenti di WinUI 2.6.
  • La creazione di pacchetti MSIX a progetto singolo è supportata in WinUI creando una nuova applicazione usando "App vuota, inclusa nel pacchetto..." modello.
  • È ora supportata la distribuzione di app WinUI 3 non in pacchetto nelle versioni di Windows 1809 e successive. Per altre informazioni, vedere Creazione del primo progetto WinUI 3.
  • I progetti WinUI 3 ora possono impostare la versione di destinazione su Windows 10, versione 1809. In precedenza, potevano essere impostati solo a partire dalla versione 1903.
  • Nella barra degli strumenti in app, Ricaricamento rapido & nella struttura ad albero visuale live per le app in pacchetto WinUI sono supportate in Visual Studio 2022 Preview 5 e GA.

Limitazioni importanti:

  • Problemi noti per le applicazioni WinUI incluse nel pacchetto e non incluse nel pacchetto :

    • Errore di runtime nelle app C++ o C# che fanno riferimento a un componente Windows Runtime C++:
      • Per risolvere il problema, aggiungere la destinazione seguente alla fine del .vcxproj del componente Windows Runtime:

        <Target Name="GetPriIndexName">
        <PropertyGroup>
            <!-- Winmd library targets use the default root namespace of the project for the App package name -->
            <PriIndexName Condition="'$(RootNamespace)' != ''">$(RootNamespace)</PriIndexName>
            <!-- If RootNamespace is empty fall back to TargetName -->
            <PriIndexName Condition="$(PriIndexName) == ''">$(TargetName)</PriIndexName>
        </PropertyGroup>
        </Target>
        
      • L'errore previsto sarà simile all'errore di origine winRT - 0x80004005 : 'Impossibile individuare la risorsa da 'ms-appx:///BlankPage.xaml'.'.

  • Problemi noti per le applicazioni WinUI con MSIX a progetto singolo (app vuota, modello incluso nel pacchetto):

    • Voce di menu di Pacchetto mancante & pubblicazione menu fino al riavvio di Visual Studio: quando si crea una nuova app con MSIX a progetto singolo in Visual Studio 2019 e Visual Studio 2022 usando il modello di progetto App vuota, In pacchetto (WinUI 3 in Desktop), il comando per pubblicare il progetto non viene visualizzato nel menu finché non si chiude e si riapri Visual Studio.
    • Un'app C# con MSIX a progetto singolo non verrà compilata senza il componente facoltativo "C++ (v14x) strumenti per piattaforma UWP (Universal Windows Platform) ". Per altre informazioni, vedere Installazione degli strumenti per Windows App SDK.
    • Potenziale errore di run-time in un'app con MSIX a progetto singolo che utilizza i tipi definiti in un componente Windows Runtime a cui si fa riferimento: per risolvere, aggiungere manualmente voci di classe attivabili al appxmanifest.xml.
      • L'errore previsto nelle applicazioni C# è "COMException: Classe non registrata (0x80040154 (REGDB_E_CLASSNOTREG)).
      • L'errore previsto nelle applicazioni C++/WinRT è "winrt::hresult_class_not_registered".
  • Problemi noti per le app WinUI 3 non inclusa nel pacchetto (app non inclusa nel pacchetto ):

  • Problemi noti per creazione di pacchetti e distribuzione di applicazioni WinUI :

    • Il Package comando non è supportato nelle app WinUI con MSIX a progetto singolo (app vuota, modello incluso nel pacchetto). Usare invece il Package & Publish comando per creare un pacchetto MSIX.
    • Per creare un pacchetto NuGet da una libreria di classi C# con il Pack comando , assicurarsi che l'elemento attivo Configuration sia Release.
    • Il Pack comando non è supportato nei componenti Windows Runtime C++ per creare un pacchetto NuGet.

Per altre informazioni o per iniziare a sviluppare con WinUI, vedere:

Windowing

Windows App SDK fornisce una classe AppWindow che evolve la precedente e intuitiva classe di anteprima Windows.UI.WindowManagement.AppWindow, ma la rende anche disponibile per tutte le applicazioni Windows, comprese quelle Win32, WPF e WinForms.

Nuove funzionalità

  • AppWindow è un'API di windows di alto livello che consente scenari di windowing facili da usare che si integrano bene con l'esperienza utente di Windows e con altre app. Rappresenta un'astrazione generale di un contenitore gestito dal sistema del contenuto di un'app. È il contenitore in cui è ospitato il contenuto; e rappresenta l'entità con cui gli utenti interagiscono quando ridimensionano e spostano l'app sullo schermo. Per gli sviluppatori che hanno familiarità con Win32, AppWindow può essere vista come un'astrazione di alto livello di HWND.
  • DisplayArea rappresenta un'astrazione generale di un HMONITOR, segue gli stessi principi di AppWindow.
  • DisplayAreaWatcher consente a uno sviluppatore di osservare le modifiche nella topologia di visualizzazione ed enumerare DisplayAreas attualmente definito nel sistema.

Per altre informazioni, vedere Gestisci finestre delle app.

Input

Queste sono le API di input che supportano WinUI e forniscono una superficie API di livello inferiore per gli sviluppatori per ottenere interazioni di input più avanzate.

Nuove funzionalità

  • API puntatore: PointerPoint, PointerPointProperties e PointerEventArgs per supportare il recupero delle informazioni sugli eventi del puntatore con le API di input XAML.
  • API InputPointerSource: rappresenta un oggetto registrato per segnalare l'input del puntatore e fornisce la gestione degli eventi di input e cursore del puntatore per l'API SwapChainPanel di XAML.
  • API cursore: consente agli sviluppatori di modificare la bitmap del cursore.
  • API GestureRecognizer: consente agli sviluppatori di riconoscere determinati movimenti, ad esempio trascinamento, tenere premuto e fare clic quando vengono specificate informazioni sul puntatore.

Limitazioni importanti

  • Tutte le funzioni statiche di fabbrica di PointerPoint sono state rimosse: GetCurrentPoint, GetCurrentPointTransformed, GetIntermediatePoints e GetIntermediatePointsTransformed.
  • Windows App SDK non supporta il recupero di oggetti PointerPoint con ID puntatore. È invece possibile utilizzare la funzione membro PointerPointGetTransformedPoint per recuperare una versione trasformata di un oggetto PointerPoint. Per i punti intermedi, è possibile utilizzare le funzioni membro PointerEventArgsGetIntermediatePoints e GetTransformedIntermediatePoints.
  • L'uso diretto dell'API dell'SDK della piattaforma Windows.UI.Core.CoreDragOperation non funzionerà con le applicazioni WinUI.
  • Le proprietà PointerPointRawPosition e ContactRectRaw sono state rimosse perché hanno fatto riferimento a valori non stimati, che erano uguali ai valori normali nel sistema operativo. Utilizzare invece Position e ContactRect. La stima del puntatore viene ora gestita con l'oggetto API Microsoft.UI.Input.PointerPredictor .

Ciclo di vita dell'app

La maggior parte delle funzionalità del ciclo di vita delle app esiste già nella piattaforma UWP ed è stata inserita in Windows App SDK per l'uso da parte dei tipi di app desktop, in particolare le app console non incluse nel pacchetto, le app Win32, le app Windows Form e le app WPF. L'implementazione Windows app SDK di queste funzionalità non può essere usata nelle app UWP, perché esistono funzionalità equivalenti nella piattaforma UWP stessa.

Importante

Se si sta lavorando a un'app UWP, fare riferimento a Eseguire la migrazione dalla piattaforma UWP a SDK per app di Windows.

Le app non UWP possono anche essere inserite in pacchetti MSIX. Anche se queste app possono usare alcune delle funzionalità del ciclo di vita delle app Windows app SDK, devono usare l'approccio manifesto in cui è disponibile. Ad esempio, non possono usare le API Windows App SDK RegisterForXXXActivation e devono invece registrarsi per l'attivazione avanzata tramite il manifesto.

Tutti i vincoli per le app in pacchetto si applicano anche alle app WinUI, incluse in un pacchetto, e ci sono considerazioni aggiuntive, come descritto di seguito.

Considerazioni importanti:

  • Attivazione avanzata: GetActivatedEventArgs

  • Registrazione/Annullamento della registrazione per l'attivazione avanzata

    • App non incluse nel pacchetto: completamente utilizzabile.
    • App incluse nel pacchetto: non è possibile usare il manifesto MSIX dell'app.
    • Per altre informazioni, vedere Attivazione avanzata.
  • Creazione di istanze singole/multiple

    • App non incluse nel pacchetto: completamente utilizzabile.
    • App non incluse nel pacchetto: completamente utilizzabile.
    • app WinUI: se un'app vuole rilevare altre istanze e reindirizzare un'attivazione, deve farlo il prima possibile e prima di inizializzare qualsiasi finestra e così via. A tale scopo, l'app deve definire DISABLE_XAML_GENERATED_MAIN e scrivere un main personalizzato (C#) o WinMain (C++) in cui può eseguire il rilevamento e il reindirizzamento.
    • RedirectActivationToAsync è una chiamata asincrona e non è consigliabile attendere una chiamata asincrona se l'app è in esecuzione in una STA. Per Windows Form e app WinUI C#, si può dichiarare Main come asincrono, se necessario. Per le app WinUI e C# WPF C++ non è possibile dichiarare Main come asincrona, quindi è necessario spostare la chiamata di reindirizzamento a un altro thread per assicurarsi di non bloccare la STA.
    • Per altre informazioni, vedi Creazione di istanze dell'app.
  • Notifiche di alimentazione/stato

    • App non incluse nel pacchetto: completamente utilizzabile.
    • App non incluse nel pacchetto: completamente utilizzabile.
    • Per ulteriori informazioni, vedere Risparmio energia.

Problema noto:

  • Le associazioni tipo di file codificano in modo non corretto %1 come %251 quando si imposta il modello della riga di comando del gestore verbo, che arresta in modo anomalo le app Win32 non incluse nel pacchetto. È possibile modificare manualmente il valore del Registro di sistema in modo che sia %1 come soluzione alternativa parziale. Se il percorso del file di destinazione contiene uno spazio, l'operazione avrà comunque esito negativo e non è disponibile alcuna soluzione alternativa per tale scenario.
  • Questi bug a istanza singola/multipla verranno corretti in una patch di manutenzione imminente:
    • Il reindirizzamento appInstance non funziona quando viene compilato per x86
    • La registrazione di una chiave, l'annullamento della registrazione e la registrazione causa l'arresto anomalo dell'app

DWriteCore

DWriteCore è l'implementazione Windows App SDK DirectWrite (DirectWrite è l'API DirectX per il rendering di testo di alta qualità, i tipi di carattere struttura indipendenti dalla risoluzione e il supporto completo di testo e layout Unicode). DWriteCore è una forma di DirectWrite, eseguibile su Windows fino alla versione 10 1809 (10.0; Build 17763), che offre opportunità per l'uso su più piattaforme.

Le Funzionalità DWriteCore contengono tutte le funzionalità di DirectWrite, con alcune eccezioni.

Limitazioni importanti

  • DWriteCore non contiene le seguenti funzionalità di DirectWrite:
    • Tipi di carattere per sessione
    • Tipi di carattere definiti dall'utente finale (EUDC)
    • API di streaming dei tipi di carattere
  • Il supporto dell'API di rendering di basso livello è parziale.
  • DWriteCore non interagisce con Direct2D, ma è possibile usare IDWriteGlyphRunAnalysis e IDWriteBitmapRenderTarget.

Per altre informazioni, vedi Panoramica di DWriteCore.

MRT Core

MRT Core è una versione semplificata del moderno Sistema di gestione delle risorse di Windows che viene distribuito come parte di Windows App SDK.

Limitazioni importanti

  • Nei progetti .NET i file di risorse copiati nella cartella del progetto non vengono indicizzati in F5 se l'app è già stata compilata. Come soluzione alternativa, ricompilare l'app. Per altre informazioni, vedere il problema 1503.
  • Nei progetti .NET, quando un file di risorse viene aggiunto al progetto usando l'interfaccia utente di Visual Studio, i file potrebbero non essere indicizzati per impostazione predefinita. Per altre informazioni, vedere il problema 1786. Per risolvere questo problema, rimuovere le voci seguenti nel file CSPROJ:
    <ItemGroup>
        <Content Remove="<image file name>" />
    </ItemGroup>
    <ItemGroup>
        <PRIResource Remove="<resw file name>" />
    </ItemGroup>
    
  • Per le app WinUI C++ non incluse nel pacchetto, l'URI della risorsa non viene compilato correttamente. Per risolvere questo problema, aggiungere quanto segue in vcxproj:
    <!-- Add the following after <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> -->
    
    <PropertyGroup>
        <AppxPriInitialPath></AppxPriInitialPath>   
    </PropertyGroup>
    

Per altre informazioni, vedere Gestire le risorse con MRT Core.

Distribuzione

Nuove funzionalità e aggiornamenti

Limitazioni importanti

  • Il wrapper .NET per l'API del programma di avvio automatico è destinato solo alle applicazioni .NET senza pacchetti per semplificare l'accesso a Windows App SDK.
  • Solo le app MSIX incluse nel pacchetto con attendibilità totale o che dispongono della funzionalità con restrizioni packageManagement hanno l'autorizzazione per usare l'API di distribuzione per installare le dipendenze del pacchetto Main e Singleton. Il supporto per le app incluse nel pacchetto con attendibilità parziale sarà disponibile nelle versioni successive.
  • Quando F5 testa un'app x86 che usa il metodo DeploymentManager.Initialize in un sistema x64, verificare che il framework x64 sia installato per la prima volta eseguendo WindowsAppRuntimeInstall.exe. In caso contrario, si verifica un errore NOT_FOUND a causa di Visual Studio che non distribuisce il framework x64, il quale in genere si verifica tramite la distribuzione dello Store o il trasferimento locale.

Altre limitazioni e problemi noti

  • Nessun supporto per qualsiasi configurazione di compilazione cpu: quando si aggiunge Windows App SDK a un'applicazione o a un componente .NET esistente che supporta Qualsiasi CPU, è necessario specificare l'architettura desiderata: x86 o x64arm64.

  • Aggiornamento da .NET 5 a .NET 6: quando si esegue l'aggiornamento nell'interfaccia utente di Visual Studio, è possibile che si verifichino errori di compilazione. Come soluzione alternativa, aggiornare manualmente il file di TargetFrameworkPackage progetto con quanto segue:

        <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework> 
    
  • L'app MSIX a progetto singolo C# non viene compilata se gli strumenti UWP C++ non sono installati. Se si dispone di un progetto MSIX a progetto singolo C#, sarà necessario installare il componente facoltativo C++ (v14x) Strumenti per la piattaforma UWP (Universal Windows Platform).

  • Il linguaggio VSIX successivo non viene installato in Visual Studio 2019 quando vengono installate più versioni di Visual Studio 2019. Se sono installate più versioni di Visual Studio 2019 (ad esempio Release e Preview) e quindi si installa Windows App SDK VSIX sia per C++ che per C#, la seconda installazione avrà esito negativo. Per risolvere il problema, disinstallare Strumenti per la creazione di pacchetti MSIX a progetto singolo per Visual Studio 2019 dopo il primo linguaggio VSIX. Visualizzare questo feedback per altre informazioni su questo problema.

  • Un'alternativa a DispatcherQueue.TryEnqueue (per riprendere l'esecuzione nel thread della coda del dispatcher) consiste nell'usare la funzione helper resume_foreground nella Libreria di implementazione di Windows (WIL):

    1. Per prima cosa, aggiungere un riferimento al progetto al pacchetto NuGet Microsoft.Windows.ImplementationLibrary.
    2. Aggiungere #include <wil/cppwinrt_helpers.h> al proprio pch.h.
    3. Aggiungere #include <winrt/Microsoft.UI.Dispatching.h> al proprio pch.h.
    4. Ora co_await wil::resume_foreground(your_dispatcherqueue);.

Versione 0.8

La versione più recente disponibile della derivazione 0.8.x del canale stabile di Windows App SDK è la versione 0.8.12.

Nota

Windows App SDK era precedentemente noto con il nome in codice Project Reunion. Alcuni asset SDK nella versione 0.8 e precedenti usano ancora il nome del codice. Alcune aree usano ancora Project Reunion quando si fa riferimento a un asset esistente o a una versione precedente specificata.

Versione 0.8.12

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 0.8.0.

Nota

Per gli sviluppatori C#, è necessaria una delle seguenti versioni di .NET SDK: 5.0.213, 5.0.407, 6.0.104, 6.0.202 (o versione successiva). Per aggiornare la versione di .NET SDK, visitare .NET Download o aggiornare la versione più recente di Visual Studio. Senza la versione richiesta di .NET SDK, quando si aggiorna il pacchetto NuGet verrà visualizzato un errore simile al seguente: "Questa versione di WindowsAppSDK richiede WinRT.Runtime.dll versione 1.6 o successiva".

Correzioni di bug:

  • È stato risolto un problema per cui le app con SwapChainPanel o WebView2 si bloccavano in modo imprevedibile a causa di una violazione di accesso.

Versione 0.8.11

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 0.8.0.

Nota

Per gli sviluppatori C#, è necessaria una delle seguenti versioni di .NET SDK: 5.0.213, 5.0.407, 6.0.104, 6.0.202 (o versione successiva). Per aggiornare la versione di .NET SDK, visitare .NET Download o aggiornare la versione più recente di Visual Studio. Senza la versione richiesta di .NET SDK, quando si aggiorna il pacchetto NuGet verrà visualizzato un errore simile al seguente: "Questa versione di WindowsAppSDK richiede WinRT.Runtime.dll versione 1.6 o successiva".

Correzioni di bug:

  • Correzione della regressione che causa l'attivazione dell'evento di stato attivo perso quando si seleziona il testo usando il mouse.

Versione 0.8.10

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 0.8.0.

Nota

Per gli sviluppatori C#, è necessaria una delle seguenti versioni di .NET SDK: 5.0.213, 5.0.407, 6.0.104, 6.0.202 (o versione successiva). Per aggiornare la versione di .NET SDK, visitare .NET Download o aggiornare la versione più recente di Visual Studio. Senza la versione richiesta di .NET SDK, quando si aggiorna il pacchetto NuGet verrà visualizzato un errore simile al seguente: "Questa versione di WindowsAppSDK richiede WinRT.Runtime.dll versione 1.6 o successiva".

Correzioni di bug:

  • Sono stati risolti problemi che causano un arresto anomalo delle app durante un'operazione di trascinamento della selezione.

Nota

Windows App SDK 0.8.9 non è stato rilasciato. La versione rilasciata direttamente dopo la versione 0.8.8 è la 0.8.10.

Versione 0.8.8

Si tratta di una versione di manutenzione di Windows App SDK che include delle correzioni di bug critiche per la versione 0.8.0.

Nota

Per gli sviluppatori C#, è necessaria una delle seguenti versioni di .NET SDK: 6.0.202, 6.0.104, 5.0.407, 5.0.213 (o versione successiva). Per aggiornare la versione di .NET SDK, visitare .NET Download o aggiornare la versione più recente di Visual Studio. Senza la versione richiesta di .NET SDK, quando si aggiorna il pacchetto NuGet verrà visualizzato un errore simile al seguente: "Questa versione di WindowsAppSDK richiede WinRT.Runtime.dll versione 1.6 o successiva".

Correzioni di bug:

  • Sono stati corretti i problemi di input tattile in TextBox per quanto riguarda la tastiera morbida e l'interazione generale. Questi problemi influiscono anche sui tasti di scelta rapida. Per altre informazioni, vedere il problema 6291 su GitHub.
  • È stato risolto un problema a causa del quale una finestra dell'app viene talvolta visualizzata come inattiva quando è attiva.
  • È stato risolto un problema di prestazioni causato dall'interfaccia utente (Automazione interfaccia utente) in esecuzione in processi esterni.
  • Correzione del problema di stabilità dell'app con l'input penna.
  • È stato risolto un problema per cui il rendering delle icone png in un menu veniva notevolmente ritardato a causa dell'interfaccia utente.

Versione 0.8.7

Si tratta di una versione di manutenzione di Windows App SDK che include diversi aggiornamenti delle prestazioni per le applicazioni C#/.NET. Per eseguire l'aggiornamento a questa versione, è necessario fare riferimento alla versione più recente del pacchetto di Windows SDK. A tale scopo, aggiungere la proprietà <WindowsSdkPackageVersion>10.0.<sdk_version>.24</WindowsSdkPackageVersion> al .csproj file con la versione dell'SDK di destinazione dell'app dalla TargetFramework proprietà. Ad esempio:

<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
       <OutputType>WinExe</OutputType>
       <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
       <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
       <WindowsSdkPackageVersion>10.0.19041.24</WindowsSdkPackageVersion>
   <PropertyGroup>
   ...

Questa versione della proiezione di Windows SDK sarà disponibile in una versione successiva di manutenzione di .NET 6. Dopo aver reso disponibile l'aggiornamento di .NET SDK, è necessario rimuovere la <WindowsSdkPackageVersion> proprietà dal file di progetto.

Se non si imposta questa proprietà, verrà visualizzato un errore simile al seguente: "Error: This version of Project Reunion requires WinRT.Runtime.dll version 1.6 or greater."

Versione 0.8.6

Si tratta di una versione di manutenzione di Windows App SDK che include diversi miglioramenti delle prestazioni per le applicazioni C#/.NET per la versione 0.8.0.

Per eseguire l'aggiornamento a questa versione di Windows App SDK, è necessario che sia installato l'aggiornamento di dicembre di .NET SDK più recente. Vedere Scaricare .NET e .NET 5 raggiungerà la fine del supporto il 10 maggio 2022. Se non è installata la versione minima richiesta di .NET SDK, verrà visualizzato un errore simile al seguente: "Error: This version of Project Reunion requires WinRT.Runtime.dll version 1.4 or greater."

Correzioni di bug

Per un elenco dettagliato dei miglioramenti delle prestazioni, vedere le note sulla versione di C#/WinRT 1.4.1.

Versione 0.8.5

Si tratta di una versione di manutenzione di Windows App SDK che include le correzioni di bug più critiche per la versione 0.8.0.

Correzioni di bug

  • È stato risolto un problema che causava l'arresto anomalo delle app WinUI usando l'input del puntatore.
  • È stato risolto un problema per cui i pulsanti della barra del titolo (min, max, close) non avrebbero angoli arrotondati in Windows 11.
  • È stato risolto un problema che causava la mancata visualizzazione delle opzioni di ridimensionamento del layout quando si passa il puntatore del mouse sul pulsante ingrandisci/ripristina in Windows 11.
  • È stato risolto un problema che causava un arresto anomalo del sistema in cui si creava un oggetto PointCollection. Per altre informazioni, vedere il problema 971 su GitHub.

Le limitazioni e i problemi noti per la versione 0.8 si applicano anche alla versione 0.8.5, a meno che non sia contrassegnato diversamente nella sezione successiva.

Versione 0.8.4

Si tratta di una versione di manutenzione di Windows App SDK che include le correzioni di bug più critiche per la versione 0.8.0.

Correzioni di bug

  • Correzioni per le barre del titolo personalizzate in modo che ContentDialog non lo copri e i pulsanti della barra del titolo vengano arrotondati.
  • Correzione di un arresto anomalo nell'elaborazione delle immagini quando viene modificata la scala di visualizzazione.
  • Corregge i bug di ritaglio in cui l'interfaccia utente scompare o ritaglia erroneamente

Le limitazioni e i problemi noti per la versione 0.8 si applicano anche alla versione 0.8.4, a meno che non sia contrassegnato diversamente nella sezione successiva.

Versione 0.8.3

Si tratta di una versione di manutenzione di Windows App SDK che include le correzioni di bug più critiche per la versione 0.8.0.

Correzioni di bug

Lo stato attivo della tastiera è andato perduto quando una finestra è stata ridotta a icona e quindi ripristinata, richiedendo un clic del mouse per ripristinare lo stato attivo.

Le limitazioni e i problemi noti per la versione 0.8 si applicano anche alla versione 0.8.3, a meno che non sia contrassegnato diversamente nella sezione successiva.

Versione 0.8.2

Si tratta di una versione di manutenzione di Windows App SDK che include le correzioni di bug più critiche per la versione 0.8.0.

Correzioni di bug

  • Windows App SDK e WinUI 3 sono ora supportati in Visual Studio 2022 Preview 2 e versioni successive.
  • Per le app .NET, è possibile che venga visualizzato l'errore seguente quando si passa una matrice di enumerazioni: Object contains non-primitive or non-blittable data.
  • La scrittura tramite il pannello Scrittura manuale all'interno di una casella di testo causa un arresto anomalo
  • Le Icone/immagini vengono sempre caricate al valore di scala del 100% anziché in base al valore di scala del monitoraggio
  • Garbage Collection di EventSource<T> causa il susseguente errore per annullare la sottoscrizione dei gestori (vedere Problema di GitHub per altri dettagli)
  • Correzione della sicurezza: vedere CVE-2021-34533 per altri dettagli.
  • SwapChainPanel.CompositionScaleChanged talvolta restituisce valori CompositionScale non corretti dopo la modifica della scala di visualizzazione

Le limitazioni e i problemi noti per la versione 0.8 si applicano anche alla versione 0.8.2, a meno che non sia contrassegnato diversamente nella sezione successiva.

Versione 0.8.1

Si tratta di una versione di manutenzione di Windows App SDK che include alcune correzioni di bug critiche per la versione 0.8.0.

Correzioni di bug

  • Windows App SDK non può essere eseguito nella build più recente di Windows Insider
  • Arresto anomalo in EditableComboBox quando si immette un valore che non viene visualizzato nell'elenco a discesa
  • WebView2 non consente all'utente di uscire una volta ricevuto lo stato attivo
  • Qualificare completamente lo spazio dei nomi Windows.Foundation.Metadata.DefaultOverload nel codice generato da WinUI per evitare ambiguità dello spazio dei nomi
  • Correzione della sicurezza: vedere CVE-2021-34489 per altri dettagli.

Le limitazioni e i problemi noti per la versione 0.8 si applicano anche alla versione 0.8.1, a meno che non sia contrassegnato diversamente nella sezione successiva.

Versione 0.8.0 stabile

Nuove funzionalità e aggiornamenti

Questa versione supporta tutte le funzionalità del canale stabile.

WinUI 3

Questa versione include molte correzioni di bug e una stabilizzazione migliorata in WinUI 3. Queste sono tutte le nuove modifiche apportate a WinUI 3 dalla versione di WinUI 3 - Project Reunion 0.5:

  • Il controllo Pivot è stato aggiunto di nuovo in e ora può essere usato in qualsiasi app WinUI 3.

  • Tutte le correzioni di bug di Project Reunion v0.5.5, v0.5.6 e v0.5.7 sono incluse in questa versione.

  • Nuove correzioni di bug, tra cui:

    • Fare clic con il pulsante destro del mouse in TextBox provoca l’arresto anomalo dell'applicazione
    • NavigationView causa un arresto anomalo nella piattaforma UWP, Reunion 0.5 Preview
    • ProgressBar non mostra la differenza tra l'opzione Paused e Error
    • Arresto anomalo in RichEditBox durante la copia/incolla/modifica dello stile di testo
    • I pulsanti della didascalia della finestra non sono posizionati quando SetTitleBar non è impostato o risulta nullo

    Per l'elenco completo dei bug risolti in questa versione, vedere il nostro repository di GitHub..

  • L'ColorHelper.ToDisplayName API non è più disponibile.

  • I seguenti tipi sono stati rimossi:

    • Microsoft.Graphics.IGeometrySource2D
    • Microsoft.Graphics.IGeometrySource2DInterop

    In alternativa, usare Windows.Graphics.IGeometrySource2D e Windows.Graphics.IGeometrySource2DInterop.

  • Tutti i tipi nello Microsoft.System spazio dei nomi sono stati spostati nello Microsoft.UI.Dispatching spazio dei nomi, inclusa la classe DispatcherQueue.

  • La AcrylicBrush.BackgroundSource proprietà è stata rimossa, perché HostBackdrop non è supportata come in BackgroundSource WinUI 3.

Per altre informazioni su WinUI, vedere Libreria dell'interfaccia utente di Windows (WinUI).

Per visualizzare controlli e funzionalità WinUI3 in azione, è possibile clonare e compilare l'app della raccolta WinUI da GitHub, o scaricare l'app da Microsoft Store.

Per iniziare a sviluppare con WinUI, vedere gli articoli seguenti:

DWriteCore

Questa versione di DWriteCore include le seguenti funzionalità nuove e aggiornate. DWriteCore è stato introdotto e descritto nella Panoramica di DWriteCore.

Nota

DWriteCoreCreateFactory è funzionalmente uguale alla funzione DWriteCreateFactory esportata dalla versione di sistema di DirectWrite. La funzione DWriteCore ha un nome diverso per evitare ambiguità nell'evento che si collega sia DWriteCore.lib che DWrite.lib.

Per informazioni di riferimento sulle API DWriteCore e DirectWrite, vedere Informazioni di riferimento sulle API DWriteCore e Informazioni di riferimento sulle API DirectWrite.

MRTCore

  • L'Azione di compilazione per le risorse viene impostata automaticamente quando si aggiunge la risorsa al progetto, riducendo la necessità di una configurazione manuale del progetto.

Limiti

  • Questa versione non è attualmente supportata nel canale dev del programma Windows Insider. Questa operazione è corretta nella versione 0.8.1.

  • App desktop (C# o C++ desktop): questa versione è supportata per l'uso solo nelle app desktop (C++ o C#) incluse nei pacchetti con MSIX. Per usare Windows App SDK nelle app desktop non incluse nel pacchetto, è necessario usare il canale di versione sperimentale.

Importante

Se si sta lavorando a un'app UWP, fare riferimento a Eseguire la migrazione dalla piattaforma UWP a SDK per app di Windows.

Problemi noti

  • Gli strumenti winUI 3, ad esempio Struttura ad albero visuale live, Esplora proprietà attive e Ricaricamento rapido nella versione 0.8 e successive richiedono Visual Studio 2019 16.11 Preview 3 e versioni successive.

  • Le app attualmente che usano WinUI 3 e Windows App SDK 0.8 non possono usare librerie di classi che usano Project Reunion 0.5. Aggiornare le librerie di classi per usare Windows App SDK 0.8.

  • Le app .NET devono puntare alla build 18362 o successiva: Il TFM deve essere impostato su net6.0-windows10.0.18362 o successivo mentre il progetto di packaging deve essere impostato su 18362 o successivo. Per altre informazioni, vedere il Problema 921 su GitHub.

  • È possibile che si verifichi un arresto anomalo quando si passa di frequente tra la modalità chiara e quella scura.

  • Per le app .NET, è possibile che venga visualizzato l'errore seguente quando si passa una matrice di enumerazioni: Object contains non-primitive or non-blittable data.questa opzione è corretta nella versione 0.8.2.

  • Per le app .NET, attualmente non è possibile rifiutare esplicitamente l'indicizzazione di un'immagine come risorsa dell'app usando l'interfaccia utente di Visual Studio. Per risolvere questo problema, aggiungere un file Directory.Build.targets (vedere Personalizza la compilazione - Visual Studio per istruzioni) al progetto e rimuovere le immagini come indicato di seguito:

    • Per rimuovere immagini specifiche (si noti che è necessario il percorso relativo):

      <Project> 
      <ItemGroup> 
          <Content Remove="..\Bitmap1.bmp" />
      </ItemGroup>
      </Project>
      
    • Per rimuovere le immagini in base ai metadati:

      <Project>
      <ItemGroup>
          <Content Remove="@(None->WithMetadataValue('Pack','true'))" />
      </ItemGroup>
      </Project>
      

    Una correzione per questo problema è pianificata per una versione futura. A questo punto, le soluzioni alternative precedenti non saranno più necessarie.

Versione 0.5

La versione più recente disponibile della derivazione 0.5.x del canale stabile di Windows App SDK è la versione 0.5.9.

Nuove funzionalità e aggiornamenti

Questa versione supporta tutte le funzionalità del canale stabile.

Problemi noti e limitazioni

Questa versione presenta le seguenti limitazioni e problemi noti:

  • App Desktop (C# or C++ desktop): questa versione è supportata per l'uso solo nelle app desktop (C++ o C#) incluse in pacchetti con MSIX. Per usare Windows App SDK nelle app desktop non incluse nel pacchetto, è necessario usare il canale di versione sperimentale.
  • Le app .NET devono avere come destinazione la build 18362 o successive: il TFM deve essere impostato su net6.0-windows10.0.18362 o successive e la <TargetPlatformVersion> del progetto di creazione del pacchetto su 18362 o successive. Per altre informazioni, vedere il problema noto su GitHub.

Importante

Se si sta lavorando a un'app UWP, fare riferimento a Eseguire la migrazione dalla piattaforma UWP a SDK per app di Windows.