Was macht winui3-migration-guide?
UWP-zu-WinUI 3 Migrationsreferenz. Bildet veraltete UWP-APIs auf korrekte Windows App SDK Entsprechungen mit Vorher/Nachher-Codeausschnitten ab. Deckt Namespace-Änderungen, Threading (CoreDispatcher zu DispatcherQueue), Fensterverwaltung (CoreWindow zu AppWindow), Dialoge, Picker, Freigabe, Druck, Hintergrundaufgaben und die häufigsten Copilot-Codegenerierungsfehler ab.
Namespace-Änderungen
| UWP-API | Windows App SDK Äquivalent |
|---|---|
Windows.UI.Xaml | Microsoft.UI.Xaml |
Windows.UI.Core | Microsoft.UI.Dispatching |
Windows.ApplicationModel | Microsoft.Windows.AppLifecycle |
Threading: CoreDispatcher → DispatcherQueue
Vor (UWP):
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
// UI-Update
});
Nach (WinUI 3):
DispatcherQueue dispatcherQueue = DispatcherQueue.GetForCurrentThread();
dispatcherQueue.TryEnqueue(DispatcherQueuePriority.Normal, () =>
{
// UI-Update
});
Fensterverwaltung: CoreWindow → AppWindow
Vor (UWP):
CoreWindow window = CoreWindow.GetForCurrentThread();
window.Activated += OnWindowActivated;
Nach (WinUI 3):
AppWindow appWindow = AppWindow.GetFromWindowId(
Win32Interop.GetWindowIdFromWindow(windowHandle));
appWindow.Changed += OnAppWindowChanged;
Dialoge und Picker
Ersetzen Sie ContentDialog für WinUI 3 TaskDialog für einfachere Fälle.
Vor (UWP):
var dialog = new MessageDialog("Nachricht", "Titel");
await dialog.ShowAsync();
Nach (WinUI 3):
var dialog = new TaskDialog()
{
Content = "Nachricht",
Title = "Titel"
};
await dialog.ShowAsync();
Häufige Copilot-Fehler
- Vergessener Namespace-Update: Copilot generiert oft
Windows.UI.XamlstattMicrosoft.UI.Xaml. Überprüfen Sie alleusing-Anweisungen. - CoreDispatcher-Ersatz: Copilot verwendet häufig
CoreDispatcher.RunAsync, was in WinUI 3 nicht verfügbar ist. Verwenden Sie stattdessenDispatcherQueue.TryEnqueue. - CoreWindow-Referenzen: Copilot neigt dazu,
CoreWindowbeizubehalten. Ersetzen Sie durchAppWindowund importieren SieMicrosoft.UI.Windowing. - ContentDialog-Überladung: Copilot erwartet standardmäßig
ContentDialog, aber für WinUI 3-Apps kannTaskDialogeinfacher sein. - BackgroundTask-APIs: Copilot generiert manchmal
Windows.ApplicationModel.Background-APIs, die aufWindows.Systemmigriert werden müssen.
Ressourcen
Hinweis: Stellen Sie immer sicher, dass Ihr Projekt auf das Windows App SDK verweist und die entsprechenden NuGet-Pakete installiert sind:
Microsoft.WindowsAppSDKMicrosoft.Windows.SDK.BuildToolsMicrosoft.UI.Xaml
Lizenz
Dieses Projekt unterliegt der MIT-Lizenz. Weitere Informationen finden Sie in der LICENSE-Datei.