Teilen über


Versionshinweise zum stabilen Kanal für das Windows App SDK 1.4

Der stabile Kanal stellt Releases des Windows App SDK bereit, die für die Verwendung durch Apps in Produktionsumgebungen unterstützt werden. Apps, die die stabile Version des Windows App SDK verwenden, können auch im Microsoft Store veröffentlicht werden.

Wichtige Links:

Release des neuesten stabilen Kanals:

Downloads für das Windows App SDK

Hinweis

Die Windows App SDK Visual Studio Extensions (VSIX) werden nicht mehr als separater Download angeboten. Sie sind auf dem Visual Studio Marketplace innerhalb von Visual Studio erhältlich.

Version 1.4.6 (1.4.240512000)

Dies ist ein Wartungsrelease des Windows App SDK, das wichtige Fehlerbehebungen für das Release 1.4 enthält.

  • Es wurde ein möglicher Absturz beim Verarbeiten von Eingaben behoben.
  • Es wurde ein Problem behoben, bei dem ein Drag-and-Drop-Vorgang, der aus einer anderen Anwendung gestartet wurde, möglicherweise nicht die korrekten Kopier-/Verschiebe-/Verknüpfungsvorgänge zuließ.
  • Die WinUI-Quellserverinformationen für das Debuggen wurden korrigiert, um ordnungsgemäß auf das GitHub-Repository microsoft-ui-xaml zu verweisen.
  • Es wurde ein Fehler im Zusammenhang mit dem Beheben des GitHub-Fehlers #8857 behoben, um die Bibliothek resources.pri ordnungsgemäß in der App resources.pri zusammenzuführen.

Version 1.4.5 (1.4.240211001)

Dies ist ein Wartungsrelease des Windows App SDK, das wichtige Fehlerbehebungen für das Release 1.4 enthält.

  • Es wurde ein Problem behoben, das dazu führen konnte, dass Anwendungen hängen blieben, wenn mit dem Mausrad gescrollt und unmittelbar danach mit einer Maustaste geklickt wurde. Weitere Informationen finden Sie im GitHub-Issue #9233.
  • Ein Problem behoben, bei dem Ressourcen dupliziert wurden, wenn auf eine Kette von NuGet-Paketen verwiesen wurde. Weitere Informationen finden Sie im GitHub-Issue #8857.
  • Es wurden mehrere BreadcrumbBar-Probleme behoben, insbesondere ein Speicherverlust, ein Absturz, der durch ein leeres Auslassungspunkte-Menü und ein im Fenster falsch eingeschränktes Auslassungspunkte-Menü verursacht werden konnte.
  • Es wurde ein potenzieller Absturz beim Herunterfahren behoben, der beim Freigeben von Grafikressourcen auftreten konnte.

Version 1.4.4 (1.4.231219000)

Dies ist ein Wartungsrelease des Windows App SDK, das wichtige Fehlerbehebungen für das Release 1.4 enthält.

  • Ein WinUI 3 Diagnose Sicherheitsproblem wurde behoben.
  • Es wurde ein Eingabeproblem behoben, bei dem das Kennwortfeld die Bildschirmtastatur beim Aktivieren per Touch nicht angezeigt hat. Weitere Informationen finden Sie im GitHub-Issue #8946.
  • Ein Problem wurde behoben, durch das die Microsoft.UI.Xaml.Controls.dll Dateigröße unerwartet vergrößert wurde.
  • Ein CommandBarFlyout-Problem wurde behoben, das beim Festlegen des Fokus zu Abstürzen führen konnte.
  • Unterstützung des Windows App SDK für .NET 8 RID-spezifische Ressourcenbehandlung aktualisiert.
  • Es wurde ein Problem behoben, durch das einige Swapchains falsch positioniert oder gestreckt wurden.

Version 1.4.3 (1.4.231115000)

Dies ist ein Wartungsrelease des Windows App SDK, das wichtige Fehlerbehebungen für das Release 1.4 enthält.

  • Es wurde ein Problem behoben, bei dem ein Menü für kurze Zeit ohne Hintergrund angezeigt werden konnte.
  • Es wurde ein Absturz behoben, der in bestimmten Szenarien mit mehreren Monitoren auftreten konnte.
  • Es wurde ein Problem behoben, bei dem ein Kontextmenü außerhalb des Bildschirms angezeigt werden konnte.
  • Es wurde ein Problem mit Fensterformatvorlagen und dem Verhalten beim Maximieren behoben. Weitere Informationen finden Sie im GitHub-Issue #8996.
  • Es wurde ein Problem mit Islands behoben, bei dem der Fokus unerwartet von einem anderen Steuerelement übernommen werden konnte.
  • Es wurde ein Problem mit der Reihenfolge der Registerkarten in NavigationView behoben.
  • Es wurde ein Renderingproblem behoben, bei dem am oberen Rand der Titelleiste möglicherweise ein weißer Balken sichtbar war. Weitere Informationen finden Sie im GitHub-Issue #8947.
  • Verschiedene Leistungskorrekturen.

Version 1.4.2 (1.4.231008000)

Dies ist ein Wartungsrelease des Windows App SDK, das wichtige Fehlerbehebungen für das Release 1.4 enthält.

  • Es wurde ein Absturzproblem in explorer.exe behoben, das durch übermäßige Speicher- und Objektzuweisung verursacht wurde.
  • Es wurde ein Problem mit der Interaktion auf der Titelleiste behoben, durch das die Zurück-Schaltfläche nicht ordnungsgemäß funktionierte.
  • Es wurde ein Problem behoben, das dazu führte, dass eine Warnung für eine Quelldatei mehrmals generiert wurde.
  • Es wurde ein Problem behoben, das sich auf die Leistung des Kontextmenüs auswirkt.
  • Es wurde ein LNK-Verknüpfungsproblem behoben, durch das die EXE-Zieldatei immer auf denselben Speicherort für Pakete im Ordner „WindowsApps“ verweist.
  • Ein DWriteCore-Problem wurde behoben, welches das ordnungsgemäße Rendern von indischen Text in bestimmten Schriftarten beeinflusste.
  • Es wurde ein Problem in einer Listenansicht behoben, durch das die richtige Tastaturnavigation zu und von geschachtelten ausgewählten Elementen mit TAB/ UMSCHALT+TAB verhindert wurde.
  • Es wurde ein Problem behoben, durch welches das Scrollen von ComboBox-Elementen durch Toucheingabe nach dem Erweitern des ComboBox-Steuerelements ein zweites Mal abgebrochen wurde. Weitere Informationen finden Sie im GitHub-Issue #8831.
  • Es wurde ein Problem behoben, bei dem WinAppSDK-Pakete nicht die lokalisierten WinUI-Ressourcen für einige Sprachen enthielten.
  • Es wurde eine Inkonsistenz zwischen der Anzeige der bevorzugten Sprache eines Benutzers im Datei-Explorer und XAML behoben.
  • Es wurde ein Handwerksproblem im Datei-Explorer behoben, das dazu führte, dass unter der aktiven Registerkarte eine dünne Linie angezeigt wurde.
  • Es wurde ein Problem behoben, bei dem einige vom Framework bereitgestellte Zugriffstasten nicht ordnungsgemäß lokalisiert wurden. Weitere Informationen finden Sie im GitHub-Issue #2023.
  • Es wurde ein Problem mit RepeatButton-Steuerelementen behoben, die beim Tippen wiederholt scrollen.
  • Die EXE-Datei des WinAppSDK-Installationsprogramms wurde so korrigiert, dass sie die richtigen Informationen zur Ressourcenversion enthält.

Version 1.4.1 (1.4.230913002)

Dies ist ein Wartungsrelease des Windows App SDK, das wichtige Fehlerbehebungen für das Release 1.4 enthält.

  • Leistungsprobleme wurden behoben, um die Zeit bis zum ersten Frame zu verbessern.
  • Ein Problem wurde behoben, bei dem Menüs RequestedTheme nicht respektiert haben. Beispielsweise konnte war dieses Problem zu weißem Text auf einem weißen Hintergrund führen. Weitere Informationen finden Sie im GitHub-Issue #8756.
  • Ein Problem wurde behoben, das dazu führte, dass Acrylhintergründe in einigen Menüs manchmal vollständig transparent wurden.
  • Ein Problem wurde behoben, bei dem XAML manchmal dazu führte, dass Windows das Desktop-Hintergrundbild unnötig neu generiert hat.
  • Die Unterstützung für TabNavigation = Local und TabNavigation = Cycle für ListView und GridView wurde korrigiert, so dass jetzt das Navigieren zwischen Kopfzeilen und Elementen mit der Tabulator-Taste zusätzlich zu Pfeiltasten möglich ist.
  • Einige auffällige Ausnahmen beim Schließen einer QuickInfo wurden behoben. Weitere Informationen finden Sie im GitHub-Issue #8699.

Neue und aktualisierte Features und bekannte Probleme bei Version 1.4

In den folgenden Abschnitten werden neue und aktualisierte Features und bekannte Probleme für Version 1.4 beschrieben.

In einer vorhandenen Windows App SDK 1.3-App können Sie Ihr NuGet-Paket auf 1.4.230822000 aktualisieren (weitere Informationen finden Sie im Abschnitt Aktualisieren eines Pakets in Installieren und Verwalten von Paketen in Visual Studio mit dem NuGet-Paket-Manager).

Die aktualisierten Runtime- und MSIX-Pakete finden Sie unter Neueste Windows App SDK-Downloads.

Benutzerdefinierte Titelleiste + AppWindow-Titelleistenzusammenführung

Die benutzerdefinierte WinUI 3-Titelleiste verwendet die AppWindow-Titelleistenimplementierung zusammen mit den NonClientInputPointerSource-APIs unter der Haube im Windows App SDK 1.4. Daher verhalten sich jetzt beide Titelleisten-Implementierungen gleich, mit den gleichen Funktionen und Einschränkungen. Dies ist in allen unterstützten Fällen vollständig abwärtskompatibel – jede App mit einer benutzerdefinierten Titelleiste verhält sich wie bisher. Aber für WinUI 3-Entwickler, die noch keine Erfahrung mit benutzerdefinierten Titelleisten haben, ist es jetzt einfacher, diese zu verstehen und zu verwenden, indem sie die Vorteile dieser neuen Funktionen nutzen:

  • Ein besseres Standardszenario, bei dem der Entwickler kein spezielles Titelleistenelement definiert (als Ersatz für die Fallback-Titelleiste von WinUI 2)
  • Unterschiedliche Ziehbereiche in der Titelleiste, mit denen Sie mehrere Ziehbereiche erstellen und anklickbare Steuerelemente auf einem beliebigen Teil des Nicht-Client-Bereichs (Titelleistenbereich) platzieren können
  • App-weite verschiebbare Bereiche, die überall in der App platziert werden können oder die gesamte App verschiebbar machen
  • Bessere Design-Unterstützung, die das ressourcenbasierte Design ersetzt
    • Da die Ziehbereiche transparent sind, passen sie sich jedes Mal dem Design der App an
  • Weitere Anpassungen: Ausblenden der Schaltflächen Min, Max und Schließen; Platzieren von Systemsymbolen in der Titelleiste; oder Einrichten verschiedener Bereiche als Untertitel-Schließen, die NCHITTEST-Antworten erhalten
  • Mehr Entwicklungsfreiheit, mit der Sie die APIs für die AppWindow-Titelleiste kombinieren können. Verwenden Sie z. B. WinUI 3-APIs auf höherer Ebene für die meisten Szenarien und nutzen Sie die AppWindow-APIs für die Steuerung auf niedrigerer Ebene.

Widgets-Updates

Es wurden drei neue Schnittstellen für Widgetanbieter hinzugefügt: IWidgetProvider2, IWidgetProviderAnalytics und IWidgetProviderErrors. Mit IWidgetProvider2 können Anbieter auf die vom Benutzer aufgerufene Aktion Anpassen reagieren. Dies ist identisch mit der Funktionalität, die für eigene Widgets verfügbar ist. Mit den Schnittstellen IWidgetProviderAnalytics und IWidgetProviderErrors können Anbieter Telemetriedaten für ihre Widgets sammeln. Die jeweiligen Widgetanbieter erhalten so Analyse- und Fehlerereignisse von Widgets. Die Klassen WidgetCustomizationRequestedArgs, WidgetAnalyticsInfoReportedArgs und WidgetErrorInfoReportedArgs werden verwendet, um relevante Informationen zur Unterstützung neuer Funktionen zu vermitteln.

XAML-Inseln nicht mehr nur experimentell

XAML-Inseln und die zugrunde liegende ContentIslands-Plattform sind nicht mehr nur experimentell.

  • Derzeit werden XAML-Inseln nur für die Verwendung in C++-Apps getestet. Diese Version enthält keine praktischen Wrapperelemente für die Verwendung in WPF oder WinForms.
  • DesktopWindowXamlSource und verwandte Typen wurden im Microsoft.UI.Xaml.Hosting-Namespace für XAML-Inseln hinzugefügt. XamlRoot.ContentIslandEnvironment wurde hinzugefügt, um den Zugriff auf die zugrunde liegenden Inselinformationen für ein Element zu erleichtern.
  • Viele neue Typen wurden im Microsoft.UI.Content-Namespace und im Microsoft.UI.Input-Namespace als zugrunde liegende Unterstützung für XAML-Inseln oder für die Verwendung dieser ContentIslands-Funktionalität ohne XAML eingeführt.
  • Im Namespace „Microsoft.UI.Input.DragDrop“ für Inselszenarien wurde ein neuer DragDropManager (plus verwandter Typen) hinzugefügt.

ItemsView

Wir führen ein neues Listensteuerelement ein, das als ItemsView bezeichnet wird und eine entsprechende konkrete ItemContainer-Klasse. ItemContainer ist ein einfacher Container mit integrierten Auswahlzuständen und visuellen Elementen, der die gewünschten Inhalte problemlos umschließen und zusammen mit ItemsView für ein Szenario mit Sammlungssteuerung verwendet werden kann.

  • Das neue Steuerelement ItemsView zeigt eine Datensammlung an. ItemsView ähnelt den Steuerelementen ListView und GridView, wird jedoch mit den Komponenten ItemsRepeater, ScrollView, ItemContainer und ItemCollectionTransitionProvider erstellt. Es bietet die einzigartige Möglichkeit, benutzerdefinierte Layout- oder ItemCollectionTransitionProvider-Implementierungen einzubinden. Ein weiterer wichtiger Vorteil ist die Möglichkeit, das Layout während der Verwendung zu wechseln und gleichzeitig die Auswahl von Elementen beizubehalten. Das innere ScrollView-Steuerelement bietet außerdem Funktionen, die in dem in ListView/GridView integrierten ScrollViewer-Steuerelement nicht verfügbar sind, wie z. B. die Möglichkeit, die Animation bei programmgesteuerten Bildläufen zu steuern.
    • Mit der neuen ItemTransitionProvider-Eigenschaft des ItemsRepeater (und dem neuen Steuerelement ItemsView) können Sie ein ItemCollectionTransitionProvider-Objekt zum Steuern von Übergangsanimationen für dieses Steuerelement angeben. Außerdem wurde eine CreateDefaultItemTransitionProvider-Methode zu Layout hinzugefügt, die es einem Layoutobjekt ermöglicht, einen integrierten Fallbackübergang bereitzustellen, wenn Sie für das ItemsView-Steuerelement nicht explizit einen angeben.
    • Eine neue IndexBasedLayoutOrientation-Eigenschaft für Layout, bei der die Layout-Ausrichtung von Objekten, falls vorhanden, auf ihrem Index in der Quellensammlung basiert. Der Standardwert ist IndexBasedLayoutOrientation.None. Benutzerdefinierte Layouts legen diese Eigenschaft durch Aufrufen der neuen (geschützten) SetIndexBasedLayoutOrientation-Methode fest.
    • Eine neue VisibleRect-Eigenschaft auf VirtualizingLayoutContext zum Abrufen des sichtbaren Viewport-Rechtecks innerhalb des FrameworkElement, das dem Layout zugeordnet ist. Die geschützte virtuelle Methode VirtualizingLayoutContext.VisibleRectCore kann überschrieben werden, um den Wert bereitzustellen, der von der Eigenschaft VisibleRect zurückgegeben wird.
  • Die neue Klasse LinedFlowLayout wird in der Regel verwendet, um die Elemente des Auflistungssteuerelements ItemsView zu gestalten. Sie ist besonders nützlich, eine Sammlung von Bildern anzuzeigen. Dabei werden die Elemente von links nach rechts und von oben nach unten in gleich hohen Zeilen angeordnet. Die Bilder füllen eine horizontale Zeile und gehen dann in die nächste Zeile über. Bilder können am linken und rechten Rand abgeschnitten werden, damit sie in eine Zeile passen. Sie können auch horizontal erweitert und am oberen und unteren Rand abgeschnitten werden, um eine Zeile zu füllen, wenn der Dehnungsmodus verwendet wird.

Neue Funktionen aus dem gesamten WinAppSDK

  • Eine neue ThemeSettings-Klasse, mit der Win32 WinRT-Apps erkennen können, dass sich die Einstellung des Systems für hohen Kontrast geändert hat, ähnlich der UWP-Klasse AccessibilitySettings. Weitere Informationen finden Sie in der ThemeSettings-API-Spezifikation auf GitHub.
  • AccessKeyManager.EnterDisplayMode ist eine neue Methode zum Anzeigen von Tastenkombinationen für das aktuelle fokussierte Element eines bereitgestellten Stamms. Tastenkombinationen befinden sich im „Anzeigemodus“, wenn eine Tastenkombination zum Aufrufen eines Befehls angezeigt wird, z. B. wenn Sie in Paint die Alt-Taste drücken, um anzuzeigen, welche Tasten welchen Steuerelementen entsprechen. Diese Methode ermöglicht die programmgesteuerte Anzeige des Anzeigemodus.
  • Application.ResourceManagerRequested bietet einen Mechanismus zur Bereitstellung eines anderen IResourceManager zur Auflösung von Ressourcen-URIs für Szenarien, in denen der Standard-ResourceManager nicht funktioniert. Weitere Informationen finden Sie in der Application.ResourceManagerRequested-API-Spezifikation auf GitHub.
  • Die Version des WebView2 SDK wurde von 1661.34 auf 1823.32 aktualisiert.
  • Popup/FlyoutBase.IsConstrainedToRootBounds = false wird jetzt unterstützt, sodass ein Popup-/Flyout außerhalb der Grenzen des übergeordneten Fensters erweitert werden kann. Zu diesen Typen wurde eine SystemBackdrop-Eigenschaft hinzugefügt, um Acryl in diesen nicht eingeschränkten Popups zu unterstützen. Diese Funktion wird in Menüs standardmäßig verwendet, um Acryl zu verwenden.
  • Closed, FrameworkClosed und IsClosed wurden zu DesktopAcrylicController und MicaController hinzugefügt, um die Abwicklung des Herunterfahrens von Objekten/Threads zu verbessern.
  • DesktopAcrylicController.Kind kann jetzt so eingestellt werden, dass Sie zwischen einigen Standard-Acryl-Darstellungen wählen können.
  • DispatcherQueue verfügt über einige neue Ereignisse und Hilfsprogramme, um das Herunterfahren besser zu koordinieren und für Anwendungen, die Inseln verwenden, einfach eine standardmäßig unterstützte Ereignisschleife auszuführen.
  • Im Namespace „Microsoft.UI.Input“ kann InputNonClientPointerSource für benutzerdefinierte Titelleistenszenarien verwendet werden, um Bereiche außerhalb des Clientbereichs zu definieren. Code kann für entsprechende Ereignisse wie Zeigen und Klicken auf Ereignisse in diesen Regionen registriert werden.
  • AppWindow hat einige neue Hilfsprogramme, um eine DispatcherQueue zu erhalten und sich mit ihr zu verknüpfen.
  • Mit dem neuen TreeView.SelectionChanged-Ereignis können Entwickler*innen reagieren, wenn Benutzer*innen oder der Code-Behind die Menge der ausgewählten Knoten im TreeView-Steuerelement ändern.
  • Das neue ScrollView-Steuerelement bietet eine neue Alternative zu ScrollViewer. Dieses neue Steuerelement ist stark im Verhalten und der API an dem vorhandenen ScrollViewer-Steuerelement ausgerichtet. Es basiert jedoch auf InteractionTracker, hat neue Features wie animationsgesteuerte Ansichtsänderungen und ist auch darauf ausgelegt, die volle Funktionalität von ItemsRepeater sicherzustellen. Weitere Informationen finden Sie unter A more flexible ScrollViewer · Issue #108 · microsoft/microsoft-ui-xaml (github.com). Verschiedene neue Typen, einschließlich ScrollPresenter, sind Teil des Gesamtmodells von ScrollView.
  • Das neue AnnotatedScrollBar-Steuerelement erweitert die Funktionalität einer regulären Bildlaufleiste, indem es eine einfache Möglichkeit zum Navigieren durch eine große Sammlung von Elementen ermöglicht. Dies wird durch eine klickbare Leiste mit Bezeichnungen erreicht, die als Markierungen fungieren. Es ermöglicht auch ein genaueres Verständnis des bildlauffähigen Inhalts, indem eine QuickInfo angezeigt wird, wenn Sie auf die klickbare Leiste zeigen.

Bekannte Probleme

Fehlerbehebungen

  • Es wurde ein Problem behoben, bei dem das Aufrufen der Microsoft.Windows.AppLifecycle.AppInstance.Restart("")-API dazu führte, dass entpackte Apps abstürzten. Weitere Informationen finden Sie im GitHub-Issue #2792.
  • Es wurde ein Absturzproblem des Installers behoben, das in 1.4-experimental1 eingeführt wurde. Weitere Informationen finden Sie im GitHub-Issue #3760.
  • Es wurde ein Problem behoben, bei dem durchgestrichener Text in einem TextBlock nicht ordnungsgemäß entfernt wurde. Weitere Informationen finden Sie im GitHub-Issue #1093.
  • Es wurde ein Problem behoben, durch zu falscher UMSCHALT+ TAB-Navigation in einem Panel führte, bei dem TabFocusNavigation auf „Einmal“ festgelegt ist. Weitere Informationen finden Sie im GitHub-Issue #1363.
  • Es wurde ein Problem in C++/WinRT behoben, das verhinderte, dass {x:Bind} mit einer Eigenschaft eines benannten XAML-Steuerelements ordnungsgemäß funktionierte. Weitere Informationen finden Sie im GitHub-Issue #2721.
  • Es wurde ein AccessViolation-Laufzeitproblem in WinUI-Desktop-Apps behoben, das durch die Einstellung DebugSettings.EnableFrameRateCounter = true verursacht wurden. Weitere Informationen finden Sie im GitHub-Issue #2835.
  • Es wurde ein Problem behoben, bei dem in XamlTypeInfo.g.cpp keine erforderlichen Header enthalten waren. Weitere Informationen finden Sie im GitHub-Issue #4907.
  • Es wurde ein Absturzproblem behoben, das durch gleichzeitige Multitouch- und Mauseingabe verursacht wurde. Weitere Informationen finden Sie im GitHub-Issue #7622.
  • Es wurde ein Problem behoben, das verhinderte, dass ein aktives WinUI 3-Anwendungsfenster gescrollt wurde, wenn die Systemeinstellung zur Deaktivierung des Bildlaufs inaktiver Fenster beim Mausover aktiv war. Weitere Informationen finden Sie im GitHub-Issue #8764.
  • Ein Absturz beim Versuch, MediaPlayerElement als Unterklasse zu verwenden, wurde behoben.
  • Einige Absturz- und Speicherverluste in TreeView wurden behoben.
  • Es wurde ein Problem behoben, bei dem die App hängen blieb, wenn für die Navigation in RadioButtons die Tastatur verwendet wurde.
  • Es wurde ein Absturz behoben, der auftrat, wenn für die Navigation in PipsPager die Tastatur verwendet wurde.
  • Der Inhalt von WebView2 skaliert jetzt mit der Einstellung „Textgröße“ in der App Einstellungen.
  • Es wurde ein Absturz behoben, der auftreten konnte, wenn Animationen liefen, während der Bildschirm ausgeschaltet war.
  • Ein in 1.3 eingeführtes Leistungsproblem wurde behoben, das beim ersten Layout/Rendering einen Overhead von ~10 % verursachte.