Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
WinUI 3 condivide molti concetti XAML con macchine virtuali Windows ed è ottimizzato per le esperienze Windows moderne. La maggior parte dei modelli macchine virtuali Windows ha equivalenti diretti in WinUI 3. In alcune aree WinUI 3 introduce un approccio migliorato che sostituisce un modello meno recente e in alcuni casi le funzionalità sono ancora in fase di sviluppo attivo.
In questo argomento vengono mappati i modelli di macchine virtuali Windows comuni agli equivalenti winUI 3, in modo da poter pianificare la migrazione.
Suggerimento
Per indicazioni generali macchine virtuali Windows + SDK per app di Windows, vedere Usare il SDK per app di Windows in un'app macchine virtuali Windows.
Controlli
La maggior parte dei controlli macchine virtuali Windows ha equivalenti diretti in WinUI 3. La tabella seguente illustra i controlli in cui la mappatura non è uno-a-uno.
| controllo macchine virtuali Windows | Equivalente a WinUI 3 | Note |
|---|---|---|
DataGrid |
Nessun equivalente di prima parte | WinUI 3 non includeva un DataGrid predefinito. WinUI.TableView gestito dalla community è un'opzione. Valutare i progetti della community in base ai requisiti di supporto e manutenzione. |
Ribbon |
CommandBar / Community Toolkit Labs |
Prendere in considerazione CommandBar e CommandBarFlyout per scenari in stile barra degli strumenti. Un controllo Ribbon è disponibile anche in Community Toolkit Labs (sperimentale). |
StatusBar |
InfoBar + layout personalizzato |
Usa InfoBar per la messaggistica di stato o aggiungi un'area del piè di pagina dedicata al layout. |
FlowDocumentReader / FlowDocumentScrollViewer |
RichTextBlock |
Usa RichTextBlock per la visualizzazione rtf di sola lettura. WinUI 3 adotta un approccio diverso per documentare il contenuto più adatto agli scenari di app moderni. |
PasswordBox con SecureString |
PasswordBox |
PasswordBox di WinUI 3 fornisce la maschera password.
SecureString è deprecato in .NET 5+; l'approccio consigliato consiste nel ridurre al minimo la durata delle credenziali in memoria usando i modelli ReadOnlySpan<char>. |
WebBrowser |
WebView2 |
WebView2 usa il motore di Microsoft Edge (Chromium) moderno ed è l'approccio consigliato per incorporare contenuto Web in tutti i tipi di app desktop. |
Funzionalità XAML
XAML winUI 3 usa gli stessi concetti di base di macchine virtuali Windows: dizionari di risorse, stili, data binding ed estensioni di markup funzionano in modo analogo. Alcuni modelli specifici di macchine virtuali Windows si sono evoluti in alternative più componibili migliorate.
| macchine virtuali Windows funzionalità | Approccio WinUI 3 | Note |
|---|---|---|
DataTrigger / MultiTrigger |
Comportamenti (Community Toolkit) | WinUI 3 usa comportamenti associati anziché trigger inline. Il pacchetto Comportamenti XAML supporta DataTriggerBehavior, EventTriggerBehaviore altro ancora. I comportamenti sono più componibili e testabili unitariamente rispetto ai trigger macchine virtuali Windows. |
DynamicResource |
ThemeResource |
ThemeResource fornisce la ricerca delle risorse di runtime e risponde automaticamente alle modifiche del tema (chiaro, scuro, contrasto elevato). Usare StaticResource per i valori che non cambiano mai in fase di esecuzione. |
MultiBinding / PriorityBinding |
Convertitori o x:Bind |
Usa un convertitore multivalore con associazioni singole oppure usa x:Bind con una proprietà calcolata nel tuo modello di vista.
x:Bind è compilato e a tipizzazione sicura, che lo rende più efficiente di Binding. |
Style con BasedOn |
✅ Sostenuto | Ereditarietà dello stile con BasedOn funziona in WinUI 3. |
| Stili impliciti | ✅ Sostenuto | Gli stili impliciti del dizionario risorse (stili senza x:Key) funzionano come previsto. |
AdornerLayer |
Approccio di sovrapposizione personalizzato | WinUI 3 non ha alcun livello decorativo equivalente. Usa una Canvas sovrapposizione o Grid nel layout per ottenere effetti visivi simili: questo approccio è più esplicito e più facile da ragionare. |
Threading e invio
| modello macchine virtuali Windows | Equivalente a WinUI 3 | Note |
|---|---|---|
Dispatcher.Invoke / BeginInvoke |
DispatcherQueue.TryEnqueue |
WinUI 3 usa DispatcherQueue. Il modello asincrono è await DispatcherQueue.EnqueueAsync(...) utilizzando l'estensione Community Toolkit. |
Application.Current.Dispatcher |
DispatcherQueue.GetForCurrentThread() |
Acquisire l'oggetto DispatcherQueue in fase di costruzione nel thread dell'interfaccia utente e archiviarlo per usarlo in un secondo momento nei thread in background. |
BackgroundWorker |
Task / async-await |
I modelli asincroni moderni .NET sono l'approccio giusto in WinUI 3.
Task, CancellationTokene IProgress<T> coprono tutti gli BackgroundWorker scenari e si integrano naturalmente con x:Bind. |
Modello di app e ciclo di vita
| macchine virtuali Windows concetto | Equivalente a WinUI 3 | Note |
|---|---|---|
Application.Startup
/
Exit Eventi |
App.OnLaunched / Window.Closed |
WinUI 3 usa OnLaunched in App.xaml.cs come punto di ingresso. L'disinstallazione per finestra viene gestita in Window.Closed. |
Application.Current.MainWindow |
La tua Window istanza |
Mantieni un riferimento all'istanza della finestra in App.xaml.cs ed esponilo come proprietà. |
Window Sottoclassi |
Personalizzazione di AppWindow | Le finestre WinUI 3 vengono personalizzate tramite AppWindow (barra del titolo, presentatore, modalità sovrapposte/schermo intero/sovrimpressione compatta) anziché tramite subclassing. Vedi Gestire le finestre delle app. |
SystemParameters |
DisplayArea / UISettings |
Le proprietà di visualizzazione del sistema sono disponibili tramite DisplayArea e UISettings. |
Risorse e localizzazione
| modello macchine virtuali Windows | Equivalente a WinUI 3 | Note |
|---|---|---|
.resx file di risorse |
.resw + ResourceLoader |
WinUI 3 utilizza i file .resw e l'API ResourceLoader. .NET Upgrade Assistant può automatizzare gran parte di questa conversione. |
x:Static estensione di markup |
x:Bind a una proprietà statica |
Utilizzare x:Bind con una proprietà statica o un accessor singleton.
x:Bind viene compilato e produce messaggi di errore più chiari rispetto a x:Static. |
| Dizionari di risorse combinati | ✅ Sostenuto |
ResourceDictionary.MergedDictionaries funziona in WinUI 3. |
| Dizionari di risorse specifici dell'argomento | ✅ Sostenuto |
ResourceDictionary.ThemeDictionaries è il meccanismo WinUI 3 per le risorse per tema e si integra con il cambio automatico in modalità scura/chiara. |
Stampa
| macchine virtuali Windows funzionalità | Stato WinUI 3 | Note |
|---|---|---|
PrintDialog / PrintDocument |
PrintManager | Il supporto completo per la stampa è disponibile tramite PrintManager. Vedi Stampare dall'app. |
Strumenti per sviluppatori
| strumenti macchine virtuali Windows | Stato WinUI 3 | Note |
|---|---|---|
| Finestra di progettazione XAML (scheda Progettazione) | Non ancora supportato | La finestra di progettazione XAML Visual Studio attualmente non supporta i progetti WinUI 3. XAML Ricaricamento rapido è supportato ed è il modo consigliato per scorrere il layout e gli stili senza arrestare il debugger. |
| Blend per Visual Studio | ⚠️ Supporto limitato | Blend viene fornito con Visual Studio e può aprire progetti WinUI 3. La struttura del documento XAML è funzionale, ma la visualizzazione Progettazione non è disponibile per WinUI 3. |