Panoramica e note sulla versione: WinUI 3 - Project Reunion 0.8 Preview (maggio 2021)

WinUI 3 è un framework UX (Native User Experience) per la creazione di app di Windows moderne. Viene fornito indipendentemente dal sistema operativo Windows come parte di Project Reunion (ora chiamato SDK per app di Windows). La versione 0.8 Preview fornisce modelli WinUI 3 in Visual Studio per iniziare a creare app con un'interfaccia utente basata su WinUI 3.

WinUI 3 - Project Reunion 0.8 Preview è una versione non definitiva di WinUI 3 che include correzioni di bug, miglioramenti generali e funzionalità sperimentali, alcune delle quali saranno stabilizzate per la versione stabile di SDK per app di Windows 0.8 nel giugno 2021.

Importante

Questa versione di anteprima è destinata alla valutazione anticipata e per raccogliere feedback dalla community degli sviluppatori. Non deve essere utilizzato per applicazioni di produzione.

Se stai cercando di distribuire un'app di produzione usando Project Reunion e WinUI 3, vedi Panoramica e note sulla versione: WinUI 3 - Project Reunion 0.5.

Usare il repository GitHub WinUI per fornire commenti e segnalare suggerimenti e problemi.

Annotazioni

Project Reunion è il nome di codice precedente per SDK per app di Windows. Questa documentazione usa ancora Project Reunion quando si fa riferimento alle versioni precedenti che usavano questo nome di codice.

Installare WinUI 3 - Project Reunion 0.8 Preview

Questa versione di WinUI 3 è disponibile come parte dell'anteprima di Project Reunion 0.8. Per eseguire l'installazione, vedere:

Installare gli strumenti per i canali di anteprima e sperimentale di SDK per app di Windows

Poiché WinUI viene fornito come parte di Project Reunion, si scaricherà Project Reunion Visual Studio Extension (VSIX) per iniziare a lavorare, che include un set di strumenti di sviluppo e componenti. Per altre informazioni sul pacchetto Project Reunion, vedi Distribuire app che usano SDK per app di Windows. SDK per app di Windows VSIX include modelli WinUI 3 in Visual Studio che userai per creare l'app WinUI.

Annotazioni

Per visualizzare i controlli e le funzionalità di WinUI 3 in azione, è possibile clonare e compilare la raccolta WinUI 3 da GitHub oppure scaricarla dal Microsoft Store.

Dopo aver configurato l'ambiente di sviluppo, vedere Modelli winUI 3 in Visual Studio per acquisire familiarità con i modelli di progetto e di elementi di Visual Studio disponibili.

Per altre informazioni sulla creazione di un'app WinUI, vedere gli articoli seguenti:

Oltre alle limitazioni e ai problemi noti, la compilazione di un'app usando i progetti WinUI è simile alla compilazione di un'app UWP con XAML e WinUI 2. Pertanto, la maggior parte della documentazione delle linee guida per le app UWP e nelle namespace Windows.UI di WinRT nel Windows SDK è applicabile.

La documentazione di riferimento dell'API WinUI 3 è disponibile qui: Informazioni di riferimento sulle API WinUI 3

WebView2

Per utilizzare WebView2 con questa versione di WinUI 3, scaricare l'Evergreen Bootstrapper o l'Evergreen Standalone Installer disponibili su questa pagina se non è già installato il runtime WebView2.

Windows Community Toolkit

Se usi Windows Community Toolkit, scarica la versione più recente.

Supporto di Visual Studio

Per sfruttare le funzionalità di strumenti più recenti aggiunte in WinUI 3, ad esempio Ricaricamento rapido, Albero visuale attivo ed Esplora proprietà attive, è necessario usare una versione di anteprima di Visual Studio 2019 16.10. Si noti che le versioni di anteprima di Visual Studio sono prodotti non definitive, pertanto è possibile che si verifichino bug e limitazioni quando si usano versioni di anteprima di Visual Studio per compilare app WinUI.

La tabella seguente illustra la compatibilità delle versioni di Visual Studio 2019 con WinUI 3 - Project Reunion 0.5.

Versione di Visual Studio WinUI 3 - Project Reunion 0.5
16.8 NO
16.9 Sì, ma senza Ricaricamento rapido, Visual Tree attivo o Live Property Explorer.
16.10 Previews Sì, con tutti gli strumenti winUI 3 (in anteprima)

Aggiornamento dell'app WinUI esistente

Se hai creato un'app con una versione di anteprima o stabile precedente di WinUI 3, puoi aggiornare il progetto per usare WinUI 3 - Project Reunion 0.8 Preview. Per istruzioni, vedere Aggiornare i progetti esistenti alla versione più recente di Project Reunion.

Modifiche principali introdotte in questa versione

  • Il controllo pivot è ora disponibile per l'uso in questa versione.
  • La maggior parte delle correzioni di bug critiche delle versioni di manutenzione di Project Reunion v0.5.5, v0.5.6 e v0.5.7 sono incluse anche in questa versione. Per i miglioramenti di manutenzione non inclusi in questa anteprima, vedere Problemi noti.

Elenco dei bug risolti in WinUI 3 - Project Reunion 0.8 Preview

  • x:Bind non funziona in un oggetto MenuFlyoutItem personalizzato (in genere x:Bind in ControlTemplate non funziona se l'ambito dei nomi padre usa anche x:Bind)

  • Nascondi le finestre popup quando la finestra di primo livello (o isola) si sposta

  • Pagina StandardUICommand in WinUI 3 Gallery non mostra tutti gli elementi

  • Fare clic con il pulsante destro del mouse in TextBox provoca l’arresto anomalo dell'applicazione

  • Menu contestuale visualizzato nella posizione errata per EditableComboBox.

  • La modifica della selezione richTextBlock con il tocco rende l'indicatore di selezione non disponibile

  • Eccezione Microsoft C++: winrt::hresult_error in posizione di memoria 0x... quando si utilizza NavigationView

  • Il messaggio di errore winUI 3 richiede la riformulazione: "Impossibile risolvere "Windows.metadata". Si prega di installare il Windows Software Development Kit. Windows SDK viene installato con Visual Studio."

  • L'anomalia del setter VSM per sollevare un'eccezione ha una logica inversa

  • Spostare lo stato attivo su WebView2 (se necessario) quando il processo del browser si arresta in modo anomalo

  • ProgressBar non mostra la differenza tra l'opzione Paused e Error

  • PointerReplay è in esecuzione continuamente

  • NavigationView provoca un crash nella piattaforma UWP, Reunion 0.5 Preview

  • AutoSuggestBox, ComboBox e CommandBarFlyout non impostano ShouldConstrainToRootBounds="false" nel popup

  • WinUI 3 - Project Reunion 0.5 che genera eccezioni C++ per un'app gestita C#

  • La messa a fuoco iniziale della scheda WebView2 è persa

  • WebView2 si arresta in modo anomalo quando i valori DPI cambiano dopo Close()

  • Modifica dell'aspetto di AppBarButton con Flyout su CommandBar in WinUI3

Funzionalità e capacità introdotte nelle precedenti anteprime di WinUI 3

Le funzionalità e le funzionalità seguenti sono state introdotte nelle versioni precedenti dell'anteprima di WinUI 3 e continuano a essere supportate in WinUI 3 - Project Reunion 0.8 Preview.

Annotazioni

Alcune delle funzionalità seguenti continueranno a far parte delle anteprime di WinUI 3, ma potrebbero non far parte della prossima versione supportata. Queste funzionalità vengono contrassegnate come sperimentali e generano un avviso quando vengono usate in un'app. Anche le API che fanno parte della versione preliminare di WinUI per UWP 2.6 sono contrassegnate come sperimentali in questa versione.

  • Possibilità di creare app desktop con WinUI, tra cui .NET per app Win32
  • Supporto a livello di anteprima per la creazione di app UWP
  • RadialGradientBrush
  • Aggiornamenti di TabView
  • Aggiornamenti del tema scuro
  • Miglioramenti e aggiornamenti di WebView2
    • Supporto per valori DPI elevati
    • Supporto per il ridimensionamento e lo spostamento delle finestre
    • Aggiornato per specificare la versione più recente di Edge
    • Non è più necessario fare riferimento a un pacchetto NuGet specifico di WebView2
  • SwapChainPanel
  • Supporto di MRT Core
    • Ciò rende le app più veloci e più leggere all'avvio e offre una ricerca più rapida delle risorse.
  • Supporto ARM64
  • Trascinare e rilasciare all'interno e all'esterno delle app
  • RenderTargetBitmap (attualmente solo contenuto XAML - nessun contenuto SwapChainPanel)
  • Supporto del cursore personalizzato
  • Input esterno al thread
  • Miglioramenti al nostro ambiente di sviluppo e strumenti per sviluppatori.
    • Albero Visuale Live, Ricaricamento rapido, Esploratore Proprietà Live e strumenti simili
    • IntelliSense per WinUI 3
  • Miglioramenti necessari per la migrazione open source
  • Funzionalità della barra del titolo personalizzate: nuove API Window.ExtendsContentIntoTitleBar e Window.SetTitleBar che consentono agli sviluppatori di creare barre del titolo personalizzate nelle app desktop.
  • Supporto di VirtualSurfaceImageSource
  • Acrilico in-app
  • Supporto per più finestre nelle app desktop
  • Convalida dell'input

Fornire commenti e suggerimenti

I commenti e i suggerimenti sono disponibili nel repository GitHub winUI.

Limitazioni e problemi noti

L'anteprima di WinUI 3 - Project Reunion 0.8 è solo quella, un'anteprima. Si prega di aspettarsi bug, limitazioni e altri problemi.

Gli elementi seguenti sono alcuni dei problemi noti relativi a WinUI 3 - Project Reunion 0.8. Se viene rilevato un problema non elencato di seguito, segnalarlo contribuendo a un problema esistente o inviando un nuovo problema tramite il repository GitHub winUI.

Supporto della piattaforma e del sistema operativo

WinUI 3 - Project Reunion 0.8 Preview è compatibile con i PC che eseguono l'aggiornamento di Windows 10 di ottobre 2018 (versione 1809 - build 17763) e versioni successive.

Strumenti di sviluppo

  • Sono supportate solo le app C# e C++/WinRT.
  • Le app desktop supportano .NET 6 (e versioni successive) e C# 9 e devono essere incluse in un'app MSIX.
  • Nessun supporto per la finestra di progettazione XAML.
  • Le nuove app C++/CX non sono supportate, ma le app esistenti continueranno a funzionare (passare a C++/WinRT il prima possibile).
  • La distribuzione desktop non in pacchetto non è supportata.
  • Quando si esegue un'app desktop con F5, assicurarsi di eseguire il progetto di packaging. Se si preme F5 nel progetto dell'app, verrà eseguita un'app non in pacchetto, che WinUI 3 non supporta ancora.

Funzionalità della piattaforma mancanti

  • Supporto Xbox

  • Supporto di HoloLens

  • Popup con finestra

    • In particolare, la ShouldConstrainToRootBounds proprietà agisce sempre come se fosse impostata su true, indipendentemente dal valore della proprietà.
  • Supporto per l'input penna digitale, tra cui:

  • Acrilico di sfondo

  • MediaElement e MediaPlayerElement

  • MapControl

  • SwapChainPanel non supporta la trasparenza

  • AcrylicBrush e altri effetti che usano CompositionBackdropBrush non possono campionare da SwapChainPanel o WebView2.

  • Global Reveal usa il comportamento di fallback, un pennello solido

  • Le isole XAML non sono supportate in questa versione

  • L'uso di WinUI 3 direttamente in un'app desktop non WinUI esistente presenta la limitazione seguente: il percorso attualmente disponibile per la migrazione di un'app esistente consiste nell'aggiungere un nuovo progetto WinUI 3 alla soluzione e modificare o effettuare il refactoring della logica in base alle esigenze.

  • Application.Suspending non viene chiamato nelle app desktop. Per altri dettagli, vedere la documentazione di riferimento dell'API sull'evento Application.Suspending.

  • L'evento UISettings.ColorValuesChanged e AccessibilitySettings.HighContrastChanged non sono più supportati nelle app desktop. Questo può causare problemi se si usa per rilevare le modifiche nei temi di Windows.

  • In precedenza, per ottenere un'istanza compositionCapabilities si chiamerebbe CompositionCapabilites.GetForCurrentView(). Tuttavia, le funzionalità restituite da questa chiamata non dipendono dalla visualizzazione. Per risolvere e riflettere questo problema, è stato eliminato lo statico GetForCurrentView() in questa versione, quindi ora è possibile creare direttamente un oggetto CompositionCapabilties .

  • CoreWindow, ApplicationView, CoreApplicationView, CoreDispatcher e le relative dipendenze non sono supportate nelle app desktop (vedere di seguito)

CoreWindow, ApplicationView, CoreApplicationView e CoreDispatcher nelle app desktop

Novità di WinUI 3 Preview 4 e standard d'ora in poi, CoreWindow, ApplicationView, CoreApplicationView, CoreDispatcher e le relative dipendenze non sono disponibili nelle app desktop. Ad esempio, la proprietà Window.Dispatcher è sempre null, ma la proprietà Window.DispatcherQueue può essere utilizzata come alternativa.

Queste API funzionano solo nelle app UWP. Nelle anteprime precedenti hanno funzionato parzialmente anche nelle app desktop, ma dall'anteprima 4 sono state completamente disabilitate. Queste API sono progettate per il caso UWP in cui è presente una sola finestra per thread e una delle funzionalità di WinUI 3 consiste nell'abilitare più in futuro.

Esistono API che dipendono internamente dall'esistenza di queste API, che di conseguenza non sono supportate in un'app desktop. Queste API in genere hanno un metodo statico GetForCurrentView . Ad esempio UIViewSettings.GetForCurrentView.

Per altre informazioni sulle API interessate, oltre a soluzioni alternative e sostituzioni per queste API, vedi Supporto per le API WinRT nelle app desktop.

Problemi noti

  • È possibile che venga visualizzato un errore di compilazione a causa di versioni non corrispondenti di .NET SDK e di winrt.runtime.dll. Come soluzione alternativa, è possibile provare quanto segue:

    Imposta esplicitamente la tua versione di .NET SDK su quella corretta. Per determinare la versione corretta per l'app, individuare il <TargetFramework> tag nel file di progetto. Usando il numero di build di Windows SDK destinato all'app <TargetFramework> nel tag (ad esempio 18362 o 19041), aggiungere l'elemento seguente al file di progetto e quindi salvare il progetto:

    <ItemGroup>            
        <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" RuntimeFrameworkVersion="10.0.{Target Windows SDK Build Number}.16" />
        <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" TargetingPackVersion="10.0.{Target Windows SDK Build Number}.16" />
    </ItemGroup>
    

    Si noti che questa soluzione alternativa è necessaria per .NET SDK 5.0.203 e versioni precedenti, ma non sarà necessaria per .NET SDK 5.0.204 o 5.0.300.

  • Quando si usa Visual Studio 2019 16.10 Preview 2, Live Visual Tree può causare un arresto anomalo. Per evitare questo problema, eseguire l'aggiornamento alla versione più recente di Visual Studio 2019 16.10 Preview.

  • I pulsanti della barra del titolo potrebbero essere posizionati in modo errato quando SetTitleBar non è impostato o è null

I rami winui3 e winui3preview non sono più disponibili e il repository XAML Controls Gallery è stato rinominato microsoft/WinUI-Gallery. L'app di esempio aggiornata per Project Reunion 0.8 Preview viene mantenuta in un commit cronologico. Questa istantanea utilizza Project Reunion 0.8.0-preview e non riflette l'attuale WinUI 3 Gallery.

Per scaricare lo snapshot cronologico, clonare il repository ed eseguire il commit conservato:

git clone https://github.com/microsoft/WinUI-Gallery.git
cd WinUI-Gallery
git fetch origin refs/pull/698/head
git checkout 77d9e0a68bb67edb2b79fd1535fb18cf438b4265

Vedere anche