Note sulla versione di WinUI 3 - Project Reunion 0.5 Preview (marzo 2021)

WinUI 3 è una piattaforma di esperienza utente nativa per la creazione di app di Windows moderne. Questa anteprima di WinUI 3 funziona con app desktop/Win32 e UWP e include modelli di progetto di Visual Studio per iniziare a creare app con un'interfaccia utente basata su WinUI e un pacchetto NuGet che contiene le librerie WinUI.

WinUI 3 - Project Reunion 0.5 Preview è la prima versione di WinUI 3 in cui viene fornita come parte del pacchetto Project Reunion (ora chiamato SDK per app di Windows). Oltre a questa modifica, questa versione di anteprima contiene correzioni di bug critiche, maggiore stabilità e altri miglioramenti generali (vedere Funzionalità introdotte in WinUI 3 - Project Reunion 0.5 Preview).

Importante

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

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.5 Preview

Questa versione di WinUI 3 è disponibile come parte dell'anteprima di Project Reunion 0.5.

Per eseguire l'installazione, seguire le istruzioni disponibili in Installare gli strumenti per i canali di anteprima e sperimentale di SDK per app di Windows.

A differenza delle versioni di anteprima precedenti di WinUI 3, si scarierà un pacchetto VSIX Project Reunion anziché un pacchetto VSIX WinUI. Project Reunion VSIX include modelli WinUI 3 in Visual Studio che userai per costruire l'app WinUI. Dopo aver completato l'installazione, l'esperienza di sviluppo di un'app WinUI non deve cambiare.

Annotazioni

Puoi anche clonare e creare la build della versione Preview di WinUI 3 di XAML Controls Gallery.

Annotazioni

Per usare gli strumenti winUI 3, ad esempio Albero visuale attivo, Ricaricamento rapido ed Esplora proprietà attive, è necessario abilitare gli strumenti winUI 3 con le funzionalità di anteprima di Visual Studio, come descritto nelle istruzioni riportate qui.

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

Per altre informazioni su come iniziare a usare i modelli di progetto 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

Se hai creato un progetto con WinUI Preview 4, puoi aggiornare il progetto per usare Project Reunion 0.5 Preview.

WebView2

Per usare WebView2 con questa anteprima di WinUI 3, scarica l'Evergreen Bootstrapper o l'Evergreen Standalone Installer disponibili in questa pagina se non hai 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 la versione di anteprima più recente di Visual Studio con l'anteprima più recente di WinUI 3 e assicurarsi di abilitare gli strumenti WinUI nelle funzionalità di anteprima di Visual Studio, come descritto nelle istruzioni riportate qui. La tabella seguente illustra la compatibilità delle versioni future con WinUI 3 - Project Reunion 0.5 Preview:

Versione di Visual Studio WinUI 3 - Anteprima Project Reunion 0.5
16.8 RTM NO
Versioni di anteprima della versione 16.9 Sì, con gli strumenti
16.9 RTM Sì, ma nessun ricaricamento rapido, struttura ad albero visuale attiva o Esplora proprietà attive
16.10 Previews Sì, con gli strumenti

Modifiche principali introdotte in questa versione

  • WinUI 3 ora viene fornito come parte del pacchetto Project Reunion, che sarà anche il meccanismo per il modo in cui verranno fornite le versioni future supportate.

  • L'acrilico in-app è ora supportato.

  • Il controllo Pivot non è più supportato ed è stato deprecato in WinUI 3. È consigliabile usare il controllo NavigationView per gli scenari di spostamento in-app.

  • WinUI 3 e Project Reunion saranno supportati solo a livello inferiore a Windows 10 versione 1809. Richiede la build 17763 o successiva.

  • Le funzionalità di anteprima sono ora contrassegnate come sperimentali.

    • Una funzionalità di anteprima è qualsiasi elemento che continuerà a far parte delle anteprime di WinUI 3, ma non farà parte della prossima versione supportata di WinUI 3.
    • Le funzionalità di anteprima includono anche tutte le API sperimentali che fanno parte dell'anteprima di WinUI per UWP 2.6.
    • Quando si compila un'app che usa una funzionalità di anteprima, l'app genererà un avviso.

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

Di seguito è riportato un elenco di bug che il team ha risolto dall'anteprima 3. C'è stato anche molto lavoro in corso sulla stabilizzazione e per migliorare i nostri test.

  • 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'app non risponde alle modifiche del tema in Windows quando si seleziona il tema predefinito di Windows fino al riavvio

  • Eccezione nella chiamata a XamlDirect.CreateInstance

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

  • Il riquadro a comparsa della visualizzazione dell'elenco StandardUICommand viene visualizzato nella posizione errata.

  • Arresto anomalo nel desktop XamlControlsGallery quando si tenta di riordinare gli elementi ListView con tocco

  • Premere e tenere premuto RichTextBlock posiziona il riquadro a comparsa in una posizione errata

  • Le frecce sinistra/destra non spostano il focus tra i pulsanti di scelta

  • L'Assistente vocale rimane silenzioso quando l'utente preme i tasti freccia giù/su per selezionare il mese/anno/data successivo/precedente in DatePicker

  • NavigationView light-dismiss non funziona in WinUI 3

Nuove funzionalità e funzionalità introdotte nelle anteprime di WinUI 3 precedenti

Le funzionalità e le funzionalità seguenti sono state introdotte in WinUI 3 Previews 1-4 e continuano a essere supportate in WinUI 3 - Project Reunion 0.5 Preview.

  • Possibilità di creare app desktop con WinUI, tra cui .NET per app Win32
  • 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 fuori dalle app
  • RenderTargetBitmap (attualmente solo contenuto XAML - nessun contenuto SwapChainPanel)
  • Supporto del cursore personalizzato
  • Input fuori thread
  • Miglioramenti alla strumentazione e all'esperienza degli sviluppatori.
    • Live Visual Tree, Ricaricamento rapido, Live Property Explorer 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

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.5 è solo quella, un'anteprima. Gli scenari relativi alle app desktop sono particolarmente nuovi. Si prega di aspettarsi bug, limitazioni e altri problemi.

Gli elementi seguenti sono alcuni dei problemi noti relativi a WinUI 3 - Project Reunion 0.5 Preview. 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.5 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 pacchetto in un'app MSIX
  • Le app UWP supportano .NET Native e C# 7.3
  • Gli strumenti di sviluppo e IntelliSense potrebbero non funzionare correttamente in Visual Studio.
  • 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)
  • Il supporto per più finestre nelle app desktop è in corso, ma non è ancora completo e stabile.
    • Segnalare un bug nel repository se vengono riscontrati nuovi problemi o regressioni con comportamento a più finestre.
  • La distribuzione di 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 in finestra
    • In particolare, la ShouldConstrainToRootBounds proprietà agisce sempre come se fosse impostata su true, indipendentemente dal valore della proprietà.
  • Supporto per la scrittura a mano
  • Acrylic
  • MediaElement e MediaPlayerElement
  • MapControl
  • RenderTargetBitmap per SwapChainPanel e contenuto non XAML
  • SwapChainPanel non supporta la trasparenza
  • Global Reveal usa il comportamento di fallback, un pennello solido
  • Le isole XAML non sono supportate in questa versione
  • Le librerie dell'ecosistema di terze parti non funzioneranno completamente
  • Gli IME non funzionano
  • 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à in Anteprima 4 e standard in futuro, CoreWindow, ApplicationView, CoreApplicationViewCoreDispatcher 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 in Preview4 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 WinUI3 consiste nell'abilitare più.

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, nonché su soluzioni alternative e sostituzioni per queste API, vedere Modifiche all'API WinRT per le app desktop

Problemi noti

  • C'è un problema che causa il mancato avvio delle app UWP in Windows 10 versione 1809. Il team sta lavorando attivamente alla correzione di questo bug per la versione di anteprima successiva.

  • ALT+F4 non chiude le finestre dell'app desktop.

  • 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.

  • Questa versione include alcune API sperimentali, che genereranno avvisi di compilazione quando vengono usati. Questi non sono stati testati accuratamente dal team e potrebbero avere problemi sconosciuti. Segnalare un bug nel repository in caso di problemi.

  • 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 .

  • Per le app UWP C#:

    Il framework WinUI 3 è un set di componenti WinRT che possono essere usati da C++ (usando C++/WinRT) o C#. Quando si usa C#, sono disponibili due versioni di .NET, a seconda del modello di app: quando si usa WinUI in un'app UWP, si usa .NET Native; quando si usa in un'app desktop, si usa .NET 6 o versione successiva (e C#/WinRT).

    Quando si usa C# per un'app WinUI in UWP, esistono alcune differenze tra gli spazi dei nomi delle API rispetto all'uso di C# in un'app desktop WinUI o in un'applicazione WinUI per UWP: alcuni tipi si trovano in uno Microsoft spazio dei nomi anziché in uno System spazio dei nomi. Ad esempio, anziché l'interfaccia INotifyPropertyChanged essere nello spazio dei nomi System.ComponentModel, è nello spazio dei nomi Microsoft.UI.Xaml.Data.

    Questo vale per:

    • INotifyPropertyChanged (e tipi correlati)
    • INotifyCollectionChanged
    • ICommand

    Le versioni dello System spazio dei nomi esistono ancora, ma non possono essere usate con WinUI 3. Ciò significa che ObservableCollection non funziona as-is nelle app UWP WinUI 3 C#. Per una soluzione alternativa, vedi l'esempio CollectionsInterop nello snapshot archiviato di XAML Controls Gallery.

Il winui3preview ramo non è più disponibile e il repository xaml Controls Gallery è stato rinominato in microsoft/WinUI-Gallery. L'app di esempio, così come era per WinUI 3 - Project Reunion 0.5 Preview, è conservata in un commit storico. Questa istantanea non rispecchia 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 checkout 136c81578c6f30750efb268a4a8e2da871f182ef