Freigeben über


Versionshinweise zu Windows App SDK 1.6

Sie können je nach Entwicklungsbedarf zwischen den Kanälen Stable, Preview und Experimental wählen – von zuverlässigen Produktionsbuilds bis hin zum frühen Zugriff auf bevorstehende Features. Erfahren Sie mehr über Veröffentlichungskanäle.

Die aktualisierte Laufzeit und MSIX finden Sie unter Downloads für das Windows App SDK.

Version 1.6.9 (1.6.250602001)

Fehlerbehebungen
  • Ein potenzieller Absturz in WindowChrome::SetTitleBar beim Schließen eines Fensters wurde behoben. Weitere Informationen finden Sie unter GitHub-Problem #9203.

Version 1.6.8 (1.6.250430001)

Unterstützung für die Erstellung von ApplicationData.MachinePath-Ordnern

ApplicationData.MachineFolder ist nun einfacher zu verwenden unter Windows >=10.0.26100.0 (Ge). Windows erstellt den Ordner "Computer ", wenn eine Unterstützung für die Paketmanifestierung zu einem System hinzugefügt wird, wenn windows App SDK 1.6.8 auf dem System vorhanden ist. Weitere Informationen finden Sie in der ApplicationData-Spezifikation.

Fehlerbehebungen
  • Die Telemetrie des PackageDeploymentManager wurde korrigiert, um ordnungsgemäß zu erfassen, wann der Abschlussstatus eintritt. Weitere Informationen finden Sie unter GitHub-Problem #5297.
  • Ein Absturz beim Verwenden der Stifteingabe in einer x86-App wurde behoben.
  • Ein potenzieller Absturz wurde behoben, wenn das Fenster bereits geschlossen ist, wenn WinUI versucht, um das Scrollen zu initialisieren.
  • Die Definition WINDOWSAPPSDK_RELEASE_PATCH und die Microsoft::WindowsAppSDK::Release::Patch-Werte in WindowsAppSDK-VersionInfo.h wurden so korrigiert, dass sie nicht immer 0 sind. Die Definition ist jetzt das Ymmdd-Datum des Builds, und der Patch-Wert ist das mmdd-Datum. Diese Änderung bietet bessere Laufzeitinformationen zu der verwendeten Version, ohne variable Größen oder das Versionsschema zu ändern.

Version 1.6.7 (1.6.250402001)

Fehlerbehebungen
  • Verbesserte Telemetrie für Fehlerszenarien in WindowsAppRuntimeInstall-<arch>.exe. Weitere Informationen finden Sie unter GitHub-Problem #5291.
  • Es wurde ein Problem behoben, bei dem die Zeigereingabe bei gleichzeitiger Verwendung von Pfeiltasten nicht mehr funktionierte. Weitere Informationen finden Sie unter GitHub-Problem #10126.
  • Es wurde ein Problem behoben, bei dem Apps in Remotedesktop nicht mehr auf Zeigereingaben reagieren. Weitere Informationen finden Sie unter GitHub-Problem #10009. (Dies ist der gleiche Fix wie die Zeigereingabe und Pfeiltasten-Korrektur, da der Remote-Desktop während des Wechselns und zurück automatisch einige Tasteneingaben sendet.)
  • Es wurde ein potenzieller Absturz behoben, der auftritt, wenn versucht wird, den Fokus wiederherzustellen, während ein Fensteraktivierungsereignis für ein zu schließendes Fenster übermittelt wird.
  • Es wurde ein Leistungsabfall behoben, der in Windows App SDK 1.6 eingeführt wurde, da bei den WinUI-Binärdateien einige Linker-Optimierungen fehlten.
  • Ein kleines Leistungsproblem beim Erstellen mehrerer WinUI-Fenster/Inseln wurde behoben.
  • Es wurde ein potenzieller Absturz behoben, wenn ProgressBar::SetProgressBarIndicatorWidth bei einer ProgressBar aufgerufen wird, die sich nicht im Baum befindet.
  • Es wurde ein Problem behoben, bei dem es zu einem Absturz kommen konnte, wenn CPopup::EnsureBridgeClosed manchmal eine Eintrittsvarianz auslöste.
  • Behoben wurde ein potenzieller Absturz beim Schließen eines Popups aufgrund einer null-Wert Kinder-Sammlung.
  • Es wurde PackageDeploymentManager.EnsurePackage*Ready behoben, um die Versionsablösung sicherzustellen. Weitere Informationen finden Sie unter GitHub-Problem Nr. 5225.

Version 1.6.6 (1.6.250228001)

Fehlerbehebungen Dies ist eine Wartungsversion des Windows App SDK, die wichtige Fehlerbehebungen für die Version 1.6 enthält.
  • Es wurde ein Problem behoben, bei dem ein untergeordnetes Fenster, das WM_NCMOUSELEAVE an das übergeordnete Fenster sendet, zu einer Schleife führte, die neue Mauseingaben blockierte.
  • Ein Absturz wurde behoben, der beim nächsten "AppWindow.Changed"-Ereignis nach einem Fehler im WebView2-Prozess auftreten würde.
  • Es wurde ein potenzieller Absturz behoben, der beim Verwenden eines Barrierefreiheitstools auftreten konnte, wenn ein Fenster geschlossen wurde.
  • Es wurde ein Problem behoben, bei dem ein Textfeld keine Tasteneingabe akzeptierte, wenn das Textfeld durch Klicken auf den Bereich der Löschen-Schaltfläche fokussiert wurde. Weitere Informationen finden Sie unter GitHub-Problem #7703.
  • Es wurde ein Problem behoben, bei dem bei Verwendung von ExtendsContentIntoTitleBar=true ein Tooltip für die Schaltfläche "Minimieren" in der Titelleiste nicht angezeigt wird. Weitere Informationen finden Sie unter GitHub-Problem #9149.

Diese Version enthält die folgenden neuen APIs:

Eine neue IsPlaceholderContent Eigenschaft für WidgetInfo und WidgetUpdateRequestOptions ermöglicht es einem Widget-Anbieter anzugeben, dass platzhalterinhalte angezeigt werden, wenn sie gerendert werden. Beispielsweise sollte ein Widget, das Wetterinformationen anzeigt, IsPlaceholderContent auf "true" festlegen, wenn der Benutzer noch keinen Wetterort angegeben hat und das Widget lediglich Wetterinformationen für einen Standardstandort wie Seattle anzeigt. Wenn ein Widget als Platzhalter gekennzeichnet ist, können bestimmte Hosts entscheiden, das Widget auszublenden oder andere Widgets zu priorisieren.

Microsoft.Windows.Widgets.Providers

    WidgetInfo
        IsPlaceholderContent

    WidgetUpdateRequestOptions
        IsPlaceholderContent

Version 1.6.5 (1.6.250205002)

Fehlerbehebungen – Es wurden mehrere Speicherleckprobleme behoben.

Version 1.6.4 (1.6.250108002)

Fehlerbehebungen – Ein Problem mit textauswahlmarkierung in einem mehrzeiligen TextBox-Objekt wurde behoben. Weitere Informationen finden Sie unter GitHub-Problem [#9965](https://github.com/microsoft/microsoft-ui-xaml/issues/9965). – Ein Problem wurde behoben, bei dem das DDLM-Paket manchmal nicht installiert wurde und das Starten von entpackten Apps verhinderte. Weitere Informationen finden Sie unter GitHub-Problem [#3855](https://github.com/microsoft/WindowsAppSDK/issues/3855). – Ein potenzieller Absturz in Detours wurde in einigen Szenarien behoben. Weitere Informationen finden Sie unter GitHub-Problem [#4937](https://github.com/microsoft/WindowsAppSDK/pull/4937). – Ein weiteres potenzielles Problem wurde behoben, bei dem ein Menü von einer CommandBar möglicherweise falsch geöffnet wird, anstatt nach unten, wenn sich die CommandBar am unteren Rand des Fensters befindet. – Ein potenzieller Absturz wurde behoben, wenn die Anwendung auf älteren Grafikkarten ausgeführt wird. – Ein potenzieller Absturz bei der Verarbeitung von Zeigerereignissen beim Schließen eines Fensters wurde behoben. - Ein potenzieller Absturz wurde behoben, der durch "CUIAWindow::InitIds" verursacht wurde und manchmal eine Reentranz auslöste. – Ein potenzieller Absturz beim Verwenden des Ereignisses "CompositionCapabilities.Changed" wurde behoben. – Ein Problem mit einigen Unicode-Zeichen, die als Quadrate in TextBox/RichEditBox angezeigt werden, wurde behoben. - Die Behandlung von `PackageDeploymentManager.EnsurePackage*Async()` im Zusammenhang mit `options.RegisterNewerIfAvailable` wurde verbessert. Weitere Informationen finden Sie unter GitHub-Problem [#4864](https://github.com/microsoft/WindowsAppSDK/issues/4864).

Version 1.6.3 (1.6.241114003)

Fehlerbehebungen Dies ist eine Wartungsversion des Windows App SDK, die wichtige Fehlerbehebungen für die Version 1.6 enthält. – Ein Problem wurde behoben, bei dem beim Lesen der Eigenschaft "AppWindow.ExtendsContentIntoTitleBar" das rendern von benutzerdefinierten Titelleisten aktiviert wurde. Weitere Informationen finden Sie unter GitHub-Problem [#9988](https://github.com/microsoft/microsoft-ui-xaml/issues/9988). - Ein potenzieller Absturz während der Zerstörung eines `TextBox`/`RichEditBox` wurde behoben. Weitere Informationen finden Sie unter GitHub-Problem [#9070](https://github.com/microsoft/microsoft-ui-xaml/issues/9070). – Ein Problem wurde behoben, bei dem 'PackageDeploymentManager.IsPackageReadyOrNewerAvailable()' fehlgeschlagen ist. Weitere Informationen finden Sie unter GitHub-Problem [#4817](https://github.com/microsoft/WindowsAppSDK/issues/4817). – Ein Problem wurde behoben, bei dem "ScrollViewer" auslaufen würde. – Es wurde eine Erkennung für ein seltenes Szenario hinzugefügt, in dem das Rendern der App beendet und nie wiederhergestellt wird. – Ein Problem wurde behoben, bei dem 'PackageDeploymentManager.RegisterPackageSetAsync()' URI erfordert, wenn es optional sein sollte, die Registrierung durch PackageFamilyName durchzuführen. – Ein Problem wurde behoben, durch das verhindert wurde, dass Apps installiert oder deinstalliert werden. Weitere Informationen finden Sie unter GitHub-Problem [#4881](https://github.com/microsoft/WindowsAppSDK/issues/4881).

Diese Version enthält die folgenden neuen APIs, mit denen Anbieter von Widgets Webinhalte in ihre Widgets integrieren können:

Microsoft.Windows.Widgets.Providers 
  IWidgetManager2 
  IWidgetProviderMessage 
  IWidgetResourceProvider 
  WidgetManager 
     SendMessageToContent 

  WidgetMessageReceivedArgs 
  WidgetResourceRequest 
  WidgetResourceRequestedArgs 
  WidgetResourceResponse 

Version 1.6.1 (1.6.240923002)

Bugfixes
  • Ein Problem, das zu Abstürzen bei Verwendung von FocusVisualKind.Reveal() führte, wurde behoben. Weitere Informationen finden Sie im GitHub-Issue #9966.
  • Es wurden störende C++-Ausnahmen von Bcp47Langs.dll behoben. Weitere Informationen finden Sie im GitHub-Issue #4691. Beachten Sie, dass dieser Fix die Synchronisierung mit Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride entfernt.
  • Ein Problem wurde behoben, bei dem ein zusätzliches Unloaded-Ereignis unmittelbar nach dem Anzeigen eines ContentDialog ausgelöst wurde. Weitere Informationen finden Sie im GitHub-Issue #8402.
  • Es wurde ein Problem behoben, bei dem ein CommandBar-Menü möglicherweise falsch geöffnet wurde, obwohl unten genug Platz zum Öffnen vorhanden war.
  • Es wurden einige Probleme behoben, bei denen Eingaben in den InputNonClientPointerSource-Regionen nicht ordnungsgemäß behandelt wurden, wenn das Fenster der obersten Ebene im Rechts-nach-Links-Modus ausgeführt wurde.
  • Die Kompilierungszeitprüfung für die Windows SDK-Framework-Version wurde so angepasst, dass sie den leicht abweichenden Framework-Namen für .NET 9 verarbeiten kann.

Version 1.6

C++-Projektänderungen

Beim Aktualisieren eines C++-Projekts auf 1.6 müssen Sie dem Microsoft.Web.WebView2-Paket einen Projektverweis hinzufügen. Wenn Sie über NuGet-Paket-Manager in Visual Studio aktualisieren, wird diese Abhängigkeit für Sie hinzugefügt.

C#-Projektänderungen

In 1.6 erfordern die verwalteten Apps von Windows-App-SDK Microsoft.Windows.SDK.NET.Ref*.*.*.38 oder höher, was über WindowsSdkPackageVersion in Ihrer csproj-Datei angegeben werden können. Beispiel:

<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
       <OutputType>WinExe</OutputType>
       <TargetFramework>net8.0-windows10.0.22621.0</TargetFramework>
       <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
       <WindowsSdkPackageVersion>10.0.22621.38</WindowsSdkPackageVersion>
   <PropertyGroup>
   ...

Darüber hinaus sollten verwaltete Windows-App-SDK-Apps auf Microsoft.Windows.CsWinRT2.1.1 (oder höher) aktualisiert werden.

Hinweis

Diese manuellen Verweise werden nach der Veröffentlichung des nächsten .NET SDK-Wartungsupdates nicht mehr benötigt.

Native AOT-Unterstützung

Systemeigene AOT-Unterstützung in 1.6

Die .NET PublishAot-Projekteigenschaft wird jetzt für die systemeigene Ahead-Of-Time-Kompilierung unterstützt. Ausführliche Informationen zu Native AOT finden Sie unter Native AOT-Bereitstellung. Da AOT auf der Trimming-Unterstützung basiert, gilt auch ein Großteil der folgenden Kürzungsanleitungen für AOT.

Für PublishAot-Unterstützung und Trimming-Unterstützung benötigen Sie zusätzlich zu den im vorherigen Abschnitt beschriebenen C#-Projektänderungen auch eine Paketreferenz zu Microsoft.Windows.CsWinRT2.1.1 (oder höher), um den Quellgenerator aus diesem Paket zu aktivieren, bis das nächste .NET SDK-Wartungsupdate veröffentlicht wird, bei dem dies nicht mehr erforderlich ist.

Weitere Informationen finden Sie im CsWinRT Trimming/AOT-Supportdokument und in den Versionshinweisen zu CsWinRT 2.1.1.

Da das Windows-App-SDK beim Bereitstellen von F5 Veröffentlichungsziele aufruft, empfehlen wir, PublishAot zur NuGet-Wiederherstellungszeit zu aktiviere , indem Sie csproj Ihrer Datei hinzufügen:

<PublishAot>true</PublishAot>
Beheben von AOT-Problemen

In dieser Version ist der Entwickler dafür verantwortlich, dass alle Typen ordnungsgemäß gerootet sind, um ein Trimmen (z. B. mit spiegelbasierten {Binding}-Zielen) zu vermeiden. Spätere Versionen werden sowohl C#/WinRT als auch den XAML-Compiler verbessern, um das Rooting nach Möglichkeit zu automatisieren, Entwickler auf Trimmingrisiken hinzuweisen und Mechanismen zur Behebung bereitzustellen.

Partielle Klassen

C#/WinRT umfasst auch PublishAot-Unterstützung in Version 2.1.1. Um eine Klasse für die AOT-Veröffentlichung mit C#/WinRT zu aktivieren, muss sie zuerst markiert partial werden. Dadurch kann der C#/WinRT AOT-Quellanalysator die Klassen für statische Analysen attributieren. Nur Klassen (die Methoden enthalten, die Ziele des Trimmings) erfordern dieses Attribut.

Unsicherer Codefehler

Der CsWinRT-Quellgenerator kann Code generieren, der unsafe verwendet. Wenn Sie während der Kompilierung einen solchen Fehler oder eine Diagnosewarnung angezeigt bekommen (CS0227 für „Unsicherer Code kann nur angezeigt werden, wenn sie mit /unsicher kompiliert wird”), sollten Sie EnableUnsafeBlocks auf „true” festlegen. Weitere Informationen finden Sie im GitHub-Issue CsWinRT #1721.

WebView2 noch nicht AOT-kompatibel

Die WebView2-Projektionen in Microsoft.Web.WebView2-Paketversion 1.0.2651.64 sind noch nicht AOT kompatibel. Dies wird in einer bevorstehenden Version des Microsoft.Web.WebView2-Pakets behoben, auf die Sie dann in Ihrem Projekt verweisen können.

Reflexionsfreie Techniken

Um die AOT-Kompatibilität zu ermöglichen, sollten spiegelbasierte Techniken durch statisch typierte Serialisierung, AppContext.BaseDirectory, typeof() usw. ersetzt werden. Ausführliche Informationen finden Sie in der Einführung zum Trimming von Warnungen.

Rooting-Typen

Bis die vollständigen Unterstützung für {Binding} implementiert ist, können wie folgt vor dem Trimming bewahrt werden:

Da das Projekt P die Assembly A mit dem Typ T im Namespace N verbraucht, die nur dynamisch referenziert wird (also normalerweise getrimmt wird), kannT beibehalten werden über:

P.csproj:

<ItemGroup>
    <TrimmerRootDescriptor Include="ILLink.Descriptors.xml" />
</ItemGroup>

ILLink.Descriptors.xml:

<?xml version="1.0" encoding="utf-8"?>
<linker>
    <assembly fullname="A">
        <type fullname="N.T" preserve="all" />
    </assembly>
</linker>

Vollständige XML-Ausdruckssyntax des Stammdeskriptors finden Sie unter Stammdeskriptoren.

Hinweis

Abhängigkeitspakete, die noch keine AOT-Unterstützung übernommen haben, können Laufzeitprobleme aufweisen.

Entkoppelte WebView2-Versionierung

Das Windows-App-SDK verwendet jetzt das Edge WebView2 SDK als NuGet-Referenz, anstatt eine hartcodierte Version des Edge WebView2 SDK einzubetten. Mit dem neuen Modell können Apps eine neuere Version des Microsoft.Web.WebView2-Pakets auswählen, anstatt auf die Version beschränkt zu sein, mit der das Windows-App-SDK erstellt wurde. Mit dem neuen Modell können Apps auch auf NuGet-Pakete verweisen, die auch auf das Edge WebView2 SDK verweisen. Weitere Informationen finden Sie im GitHub-Issue #5689.

Neue Paketbereitstellungs-APIs

Die Paketverwaltungs-API hat mehrere Verbesserungen erhalten, darunter Is*ReadyOrNewerAvailable*(), EnsureReadyOptions.RegisterNewerIfAvailable, Is*Provisioned*(), IsPackageRegistrationPending() und mehrere Fehlerkorrekturen. Weitere Informationen finden Sie unter PackageManagement.md und Pullanforderung #4453 .

Verbesserte TabView-Registerkarte ausreißen

Verbessertes Herausziehen der TabView in 1.6

TabView unterstützt einen neuen CanTearOutTabs-Modus, der eine erweiterte Benutzeroberfläche zum Ziehen von Registerkarten in ein neues Fenster bietet. Wenn diese neue Option aktiviert ist, ähnelt das Ziehen von Registerkarten in Edge und Chrome sehr dem Ziehen von Registerkarten, bei dem während des Ziehens sofort ein neues Fenster erstellt wird, sodass der Benutzer die Registerkarte an den Rand des Bildschirms ziehen kann, um das Fenster in einer reibungslosen Bewegung zu maximieren oder anzudocken. Diese Implementierung verwendet auch keine Drag-and-Drop-APIs, sodass sie nicht durch Einschränkungen in diesen APIs beeinträchtigt wird. Insbesondere wird das Ausreißen von Registerkarten in Prozessen unterstützt, die als Administrator ausgeführt werden.

Weitere wichtige Änderungen
  • Es wurde eine neue ColorHelper.ToDisplayName()-API hinzugefügt, die diese Lücke von UWP füllt.
  • Es wurde eine neue Microsoft.Windows.Globalization.ApplicationLanguages-Klasse hinzugefügt, die insbesondere ein neues PrimaryLanguageOverride-Feature enthält. Weitere Informationen finden Sie im GitHub-Issue #4523.
  • ItemsWrapGrid nicht versiegelt. Dies sollte eine abwärtskompatible Änderung sein.
  • PipsPager unterstützt einen neuen Modus, in dem er zwischen den ersten und letzten Elementen umbrochen werden kann.

Neuer PipsPager-Wrapping-Modus in Version 1.6

  • RatingControl ist jetzt besser anpassbar, indem einige hartcodierte Formateigenschaften in Designressourcen verschoben werden. Dadurch können Apps diese Werte überschreiben, um die Darstellung von RatingControl besser anzupassen.
Neue RatingControl-Anpassung in Version 1.6
  • WinUI 3 hat das alte Modell für Schriftstärke, -dehnung und -stil durch das typografische Modell für die Schriftauswahl ersetzt. Das typografische Modell ist für einige neuere Schriftarten erforderlich, einschließlich Segoe UI Variable und ermöglicht erweiterte Schriftartfunktionen. Einige ältere Schriftarten, die auf dem Modell „Gewicht/Dehnung/Stil” basieren, werden möglicherweise nicht mit dem typografischen Modell gefunden.
Bekannte Probleme
  • Wenn der Debugger für alle C++-Ausnahmen festgelegt ist, werden einige laute Ausnahmen beim Start im BCP47-Code (Windows Globalization) abgebrochen. Weitere Informationen finden Sie im GitHub-Issue #4691.
  • Komponentenbibliothekspakete, die auf das Windows App SDK 1.6-Paket verweisen, erhalten nicht ordnungsgemäß den Inhalt des webView2-Pakets. Weitere Informationen finden Sie unter WebView2Feedback #4743. Eine Problemumgehung besteht darin, bei Bedarf einen direkten Verweis auf das Microsoft.Web.WebView2-Paket hinzuzufügen.
  • Bei Apps, die mit Native AOT kompiliert wurden, kann es nach der Seitennavigation aufgrund einer Race-Condition im GC-Thread der .NET-Laufzeit zu einem Hänger kommen. Weitere Informationen finden Sie unter .NET-Problem #104582.
  • In der ersten Version von 1.6.0 gibt ein Problem mit einer unserer Abhängigkeiten, das in einer bevorstehenden Version des .NET SDK behoben wird. Wenn bei der Version Ihrer Microsoft.Windows.SDK.NET-Referenz ein Fehler auftritt, müssen Sie explizit auf die Version des .NET SDK verweisen, die von der Fehlermeldung angegeben wird. Wenn der Fehler beispielsweise besagt, dass Sie Version 10.0.19041.38 benötigen, fügen Sieder Datei .csproj hinzu:
    • <WindowsSdkPackageVersion>10.0.19041.38</WindowsSdkPackageVersion>.
Fehlerbehebungen
  • Ein Absturz beim Festlegen von InfoBar.IsOpen in XAML wurde behoben. Weitere Informationen finden Sie im GitHub-Issue #8391.
  • Es wurde ein Problem behoben, bei dem HTML-Elemente die Zeigererfassung verloren, wenn die Maus außerhalb der WebView2 Grenzen verschoben wurde. Weitere Informationen finden Sie im GitHub-Issue #8677.
  • Es wurde ein Problem behoben, bei dem das Ziehen und Ablegen in ein Flyout mit ShouldConstrainToRootBounds=false nicht funktionierte. Weitere Informationen finden Sie im GitHub-Issue #9276.
  • Es wurde ein Problem behoben, bei dem ms-appx://-Verweise nicht funktionierten, wenn PublishSingleFile aktiviert ist. Weitere Informationen finden Sie im GitHub-Issue #9468.
  • Es wurde ein Problem behoben, bei dem Debuggersymbole für einige Binärdateien nicht ordnungsgemäß funktionieren. Weitere Informationen finden Sie im GitHub-Issue #4633.
  • Ein potenzieller Absturz beim Erstellen von Unterklassen für NavigationView wurde behoben.
  • Es wurde ein Problem behoben, bei dem Tabellenrahmen in einem RichEditBox beim Scrollen oder Verringern der Tabellengröße nicht ordnungsgemäß gelöscht wurden.
  • Ein Problem wurde behoben, bei dem Flyouts aus MediaTransportControls einen vollständig transparenten Hintergrund hatten.
  • Es wurde ein Problem behoben, bei dem das Ziehen in eine WebView2 fehlschlug oder der Text an der falschen Stelle abgelegt wurde, wenn andere Anzeigeskalierungsfaktoren als 100 % verwendet wurden oder wenn die Textskalierung des Systems aktiviert war.
  • Es wurde ein Problem behoben, bei dem TextBox/RichEditBox nicht an die Eingabehilfen gemeldet hat, wenn die Eingabe aufgrund der MaxLength blockiert wurde.
  • Einige Probleme beim Umgang mit benutzerdefinierten Titelleistenszenarien wurden behoben. Weitere Informationen finden Sie in den GitHub-Problemen #7629, #9670, #9709 und #8431.
  • Es wurde ein Problem behoben, bei dem das InfoBadge-Symbol nicht sichtbar war. Weitere Informationen finden Sie im GitHub-Issue #8176.
  • Ein Problem wurde behoben, bei dem Symbole manchmal an der falschen Position in der CommandBarFlyout angezeigt wurden. Weitere Informationen finden Sie im GitHub-Issue #9409.
  • Ein Problem mit dem Tastaturfokus in Menüs beim Öffnen oder Schließen eines Untermenüs wurde behoben. Weitere Informationen finden Sie im GitHub-Issue #9519.
  • Ein Problem wurde behoben, bei dem TreeView den falschen IsExpanded-Zustand beim Recycling von Elementen verwendet hat. Weitere Informationen finden Sie im GitHub-Issue #9549.
  • Ein Problem beim Verwenden einer ElementName-Bindung in einer ItemsRepeater.ItemTemplate wurde behoben. Weitere Informationen finden Sie im GitHub-Issue #9715.
  • Es wurde ein Problem behoben, bei dem das erste Element in einer ItemsRepeater manchmal an einer falschen Position war. Weitere Informationen finden Sie im GitHub-Issue #9743.
  • Es wurde ein Problem behoben, bei dem InputNonClientPointerSource manchmal die Eingabe über die Schaltflächen „Min/Max/Schließen“ unterbrach. Weitere Informationen finden Sie im GitHub-Issue #9749.
  • Ein Kompilierungsfehler bei Verwendung von Microsoft.UI.Interop.h mit clang-cl wurde behoben. Weitere Informationen finden Sie im GitHub-Issue #9771.
  • Es wurde ein Problem behoben, bei dem das CharacterReceived-Ereignis in ComboBox/TextBox nicht funktionierte. Weitere Informationen finden Sie im GitHub-Issue #9786.
  • Es wurde ein Problem behoben, bei dem doppelte KeyUp-Ereignisse für Pfeil- und Tabulatortasten ausgelöst wurden. Weitere Informationen finden Sie im GitHub-Issue #9399.
  • Es wurde ein Problem behoben, bei dem das PowerManager.SystemSuspendStatusChanged-Ereignis nicht zum Abrufen des SystemSuspendStatus-Ereignisses verwendet werden konnte. Weitere Informationen finden Sie im GitHub-Issue #2833.
  • Es wurde ein Problem behoben, bei dem der anfängliche Tastaturfokus nicht korrekt auf ein WebView2 gelegt wurde, wenn dies das einzige Steuerelement im Fenster war.
  • Es wurde ein Problem behoben, das bei der Verwendung von ExtendsContentIntoTitleBar=true auftrat, bei dem die Schaltflächen „Min/Max/Schließen“ nicht korrekt in der UI-Automatisierung angezeigt wurden, was dazu führte, dass Voice Access keine Zahlen für diese Schaltflächen anzeigte.
  • Es wurde ein Problem behoben, bei dem eine App aufgrund unerwarteter Eintrittsinvarianz in einer Sperrprüfung abstürzte.
  • Es wurde ein Problem behoben, bei dem Hyperlink-Farben beim Wechseln in ein Design mit hohem Kontrast nicht ordnungsgemäß aktualisiert wurden.
  • Es wurde ein Problem behoben, bei dem das Ändern der Sammlung einer ListView in einem Hintergrundfenster dazu führen konnte, dass dieses Fenster fälschlicherweise in den Vordergrund gerückt wurde und den Fokus erhielt.
  • Es wurde ein Problem behoben, bei dem das Aufrufen der ItemsRepeater.StartBringIntoView manchmal dazu führte, dass Elemente nicht mehr angezeigt werden.
  • Es wurde ein Problem behoben, bei dem das Berühren und Ziehen einer Button in einer ScrollViewer diese in einem gedrückten Zustand lassen würde.
  • IntelliSense wurde mit Informationen für viele neuere Typen und Member aktualisiert.
  • Es wurde ein Problem behoben, bei dem durch Klicken in einen leeren Bereich eines ScrollViewer immer der Fokus auf das erste fokussierbare Steuerelement im ScrollViewer verschoben und in die Ansicht gescrollt wurde. Weitere Informationen finden Sie im GitHub-Issue #597.
  • Es wurde ein Problem behoben, bei dem das Window.Activated-Ereignis manchmal mehrmals ausgelöst wurde. Weitere Informationen finden Sie im GitHub-Issue #7343.
  • Es wurde ein Problem behoben, bei dem das Festlegen der NavigationViewItem.IsSelected-Eigenschaft auf true verhinderte, dass die untergeordneten Elemente, wenn erweitert, angezeigt wurden. Weitere Informationen finden Sie im GitHub-Issue #7930.
  • Es wurde ein Problem behoben, bei dem MediaPlayerElement Beschriftungen mit None- oder DropShadow-Randeffekten nicht ordnungsgemäß anzeigte. Weitere Informationen finden Sie im GitHub-Issue #7981.
  • Es wurde ein Problem behoben, bei dem die Flyout.ShowMode-Eigenschaft beim Anzeigen des Flyouts nicht verwendet wurde. Weitere Informationen finden Sie im GitHub-Issue #7987.
  • Es wurde ein Problem behoben, bei dem NumberBox manchmal Rundungsfehler aufwies. Weitere Informationen finden Sie im GitHub-Issue #8780.
  • Es wurde ein Problem behoben, bei dem die Verwendung einer Bibliothek, die mit einer älteren Version des Windows App SDK kompiliert wurde, einen Fehler beim Versuch, einen Typ oder eine Eigenschaft zu finden, auftritt. Weitere Informationen finden Sie im GitHub-Issue #8810.
  • Ein Problem wurde behoben, bei dem der anfängliche Tastaturfokus beim Starten eines Fensters nicht festgelegt wurde. Weitere Informationen finden Sie im GitHub-Issue #8816.
  • Es wurde ein Problem behoben, bei dem FlyoutShowMode.TransientWithDismissOnPointerMoveAway nach der erstmaligen Anzeige nicht mehr funktionierte. Weitere Informationen finden Sie im GitHub-Issue #8896.
  • Es wurde ein Problem behoben, bei dem einige Steuerelemente die Eigenschaften Foreground und Background nicht ordnungsgemäß an eine Vorlage gebunden haben. Weitere Informationen finden Sie in den GitHub-Problemen #7070, #9020, #9029, #9083 und #9102.
  • Es wurde ein Problem behoben, bei dem ThemeResources, die in VisualStateManager-Settern verwendet wurden, bei einem Designwechsel nicht aktualisiert wurden. Dies hatte häufig Auswirkungen auf Steuerelemente in Flyouts. Weitere Informationen finden Sie im GitHub-Issue #9198.
  • Es wurde ein Problem behoben, bei dem WebView den Schlüsselfokus verlor, was zu zusätzlichen Weichzeichner-/Fokusereignissen und anderen Problemen führte. Weitere Informationen finden Sie im GitHub-Issue #9288.
  • Ein Problem wurde behoben, bei dem NavigationView einen Bindungsfehler in der Debugausgabe anzeigte. Weitere Informationen finden Sie im GitHub-Issue #9384.
  • Ein Problem wurde behoben, bei dem SVG-Dateien, die ein negatives Viewbox-Element definieren, nicht mehr gerendert wurden. Weitere Informationen finden Sie im GitHub-Issue #9415.
  • Es wurde ein Problem behoben, bei dem das Ändern der ItemsView.Layout-Ausrichtung dazu führte, dass ein Element entfernt wurde. Weitere Informationen finden Sie im GitHub-Issue #9422.
  • Es wurde ein Problem behoben, bei dem beim Scrollen einer ScrollView eine Menge Debugausgabe erzeugt wurde. Weitere Informationen finden Sie im GitHub-Issue #9434.
  • Es wurde ein Problem behoben, bei dem MapContorl.InteractiveControlsVisible nicht ordnungsgemäß funktionierte. Weitere Informationen finden Sie im GitHub-Issue #9486.
  • Es wurde ein Problem behoben, bei dem das MapControl.MapElementClick-Ereignis nicht ordnungsgemäß ausgelöst wurde. Weitere Informationen finden Sie im GitHub-Issue #9487.
  • Es wurde ein Problem behoben, bei dem x:Bind vor der Verwendung eines schwachen Verweises nicht auf NULL überprüft wurde, was zu einem Absturz führen konnte. Weitere Informationen finden Sie im GitHub-Issue #9551.
  • Es wurde ein Problem behoben, bei dem das Ändern der TeachingTip.Target-Eigenschaft ihre Position nicht ordnungsgemäß aktualisierte. Weitere Informationen finden Sie im GitHub-Issue #9553.
  • Ein Problem wurde behoben, bei dem Dropdowns in WebView2 nicht reagierten. Weitere Informationen finden Sie im GitHub-Issue #9566.
  • Ein Speicherverlust bei Verwendung von GeometryGroup wurde behoben. Weitere Informationen finden Sie im GitHub-Issue #9578.
  • Es wurde ein Problem behoben, bei dem das Scrollen durch eine sehr große Anzahl von Elementen aus einem ItemRepeater in einer ScrollView zu leeren Renderframes führen konnte. Weitere Informationen finden Sie im GitHub-Issue #9643.
  • Es wurde ein Problem behoben, bei dem SceneVisual nicht funktionierte.
Neue APIs

Version 1.6.0 enthält gegenüber dem stabilen Release 1.5 die folgenden neuen APIs:

Microsoft.UI

    ColorHelper
        ToDisplayName
Microsoft.UI.Input

    EnteredMoveSizeEventArgs
    EnteringMoveSizeEventArgs
    ExitedMoveSizeEventArgs
    InputNonClientPointerSource
        EnteredMoveSize
        EnteringMoveSize
        ExitedMoveSize
        WindowRectChanged
        WindowRectChanging

    MoveSizeOperation
    WindowRectChangedEventArgs
    WindowRectChangingEventArgs
Microsoft.UI.Xaml

    XamlRoot
        CoordinateConverter
Microsoft.UI.Xaml.Automation.Peers

    ScrollPresenterAutomationPeer
Microsoft.UI.Xaml.Controls

    PipsPager
        WrapMode
        WrapModeProperty

    PipsPagerWrapMode
    TabView
        CanTearOutTabs
        CanTearOutTabsProperty
        ExternalTornOutTabsDropped
        ExternalTornOutTabsDropping
        TabTearOutRequested
        TabTearOutWindowRequested

    TabViewExternalTornOutTabsDroppedEventArgs
    TabViewExternalTornOutTabsDroppingEventArgs
    TabViewTabTearOutRequestedEventArgs
    TabViewTabTearOutWindowRequestedEventArgs
Microsoft.Windows.Globalization

    ApplicationLanguages
Microsoft.Windows.Management.Deployment

    EnsureReadyOptions
        RegisterNewerIfAvailable

    PackageDeploymentFeature
    PackageDeploymentManager
        IsPackageDeploymentFeatureSupported
        IsPackageProvisioned
        IsPackageProvisionedByUri
        IsPackageReadyOrNewerAvailable
        IsPackageReadyOrNewerAvailableByUri
        IsPackageSetProvisioned
        IsPackageSetReadyOrNewerAvailable

    PackageReadyOrNewerAvailableStatus
Microsoft.Windows.Storage

    ApplicationData
    ApplicationDataContainer
    ApplicationDataContract
    ApplicationDataCreateDisposition
    ApplicationDataLocality

Version 1.6 Preview 2 (1.6.0-preview2)

Dies ist die neueste Version des Vorschaukanals für Version 1.6.

In einer vorhandenen Windows App SDK 1.5 (aus der Stable Channel)-App können Sie Ihr Nuget-Paket auf 1.6.0-preview2 aktualisieren (siehe Abschnitt "Aktualisieren eines Pakets " unter "Installieren und Verwalten von Paketen in Visual Studio mithilfe des NuGet-Paket-Managers").

Die aktualisierte Laufzeit und MSIX finden Sie unter Downloads für das Windows App SDK.

Native AOT-Unterstützung

1.6-preview2 enthält erhebliche Änderungen am Update auf die veröffentlichte Microsoft.Windows.CsWinRT Version 2.1.1 und machen die Erstellung zuverlässiger für native Ahead-Of-Time Kompilierung.

Aktualisierte Edge WebView2 SDK-Integration

Diese Version verweist jetzt auf die veröffentlichte Version 1.0.2651.64 des Microsoft.Web.WebView2 Pakets, die Probleme beheben sollte, die mit der Vorabversion behoben werden sollten, auf die in 1.6-preview1 verwiesen wird. Wie in 1.6-preview1 erwähnt, können Apps jetzt bei Bedarf eine neuere Version des Microsoft.Web.WebView2 Pakets auswählen.

Fehlerbehebungen

1.6-preview2 enthält die folgenden neuen Fixes seit der Veröffentlichung von 1.6-preview1:

  • Ein Absturz beim Festlegen von InfoBar.IsOpen in XAML wurde behoben. Weitere Informationen finden Sie im GitHub-Issue #8391.
  • Es wurde ein Problem behoben, bei dem HTML-Elemente die Zeigererfassung verloren, wenn die Maus außerhalb der WebView2 Grenzen verschoben wurde. Weitere Informationen finden Sie im GitHub-Issue #8677.
  • Es wurde ein Problem behoben, bei dem das Ziehen und Ablegen in ein Flyout mit ShouldConstrainToRootBounds=false nicht funktionierte. Weitere Informationen finden Sie im GitHub-Issue #9276.
  • Es wurde ein Problem behoben, bei dem ms-appx://-Verweise nicht funktionierten, wenn PublishSingleFile aktiviert ist. Weitere Informationen finden Sie im GitHub-Issue #9468.
  • Es wurde ein Problem behoben, bei dem Debuggersymbole für einige Binärdateien nicht ordnungsgemäß funktionieren. Weitere Informationen finden Sie im GitHub-Issue #4633.
  • Einen Buildfehler bei der Verwendung von /permissive- behoben. Weitere Informationen finden Sie unter GitHub-Problem #4643.
  • Es wurden einige Bruchänderungen der API in 1.6-preview1 behoben, die aufgrund umbenannter Parameter verursacht wurden. Weitere Informationen finden Sie unter GitHub-Problem #4645.
  • Projektübergreifende Konflikte von Typen führten in der 1.6-Vorschau1-Version zu erheblichen Build-Unterbrechungen, besonders bei Windows.UI.Text-Typen. Weitere Informationen finden Sie unter GitHub-Problem #4646.
  • Es wurde ein Problem bei der Ressourcensuche durch Steuerelementbibliotheken in 1.6-preview1 behoben. Weitere Informationen finden Sie unter GitHub-Problem #4649.
  • Ein potenzieller Absturz beim Erstellen von Unterklassen für NavigationView wurde behoben.
  • Es wurde ein Problem behoben, bei dem Tabellenrahmen in einem RichEditBox beim Scrollen oder Verringern der Tabellengröße nicht ordnungsgemäß gelöscht wurden.
  • Ein Problem wurde behoben, bei dem Flyouts aus MediaTransportControls einen vollständig transparenten Hintergrund hatten.
  • Es wurde ein Problem behoben, bei dem das Ziehen in eine WebView2 fehlschlug oder der Text an der falschen Stelle abgelegt wurde, wenn andere Anzeigeskalierungsfaktoren als 100 % verwendet wurden oder wenn die Textskalierung des Systems aktiviert war.
  • Es wurde ein Problem behoben, bei dem TextBox/RichEditBox nicht an die Eingabehilfen gemeldet hat, wenn die Eingabe aufgrund der MaxLength blockiert wurde.

Version 1.6 Preview 1 (1.6.0-preview1)

Hinweis

Das neue TitleBar-Steuerelement, das wir in 1.6-experimental1 veröffentlicht haben, ist in nicht-experimentellen Builds von 1.6 noch nicht verfügbar, um mehr Zeit zum Auswerten und Beantworten von Communityfeedback zu ermöglichen. Wir haben hier viele großartige Rückmeldungen erhalten und möchten sicherstellen, dass wir uns die nötige Zeit nehmen, um darauf einzugehen.

Erforderliche C#-Projektänderungen für 1.6-preview1

In 1.6-preview1 erfordern verwaltete Windows App SDK-Apps Microsoft.Windows.SDK.NET.Ref*.*.*.38, die über WindowsSdkPackageVersion in Ihrer csproj Datei angegeben werden können. Beispiel:

<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
       <OutputType>WinExe</OutputType>
       <TargetFramework>net8.0-windows10.0.22621.0</TargetFramework>
       <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
       <WindowsSdkPackageVersion>10.0.22621.38</WindowsSdkPackageVersion>
   <PropertyGroup>
   ...

Darüber hinaus sollten verwaltete Windows-App-SDK-Apps auf Microsoft.Windows.CsWinRT2.1.1 (oder höher) aktualisiert werden.

Native AOT-Unterstützung

Die .NET PublishAot-Projekteigenschaft wird jetzt für die systemeigene Ahead-Of-Time-Kompilierung unterstützt. Ausführliche Informationen zu Native AOT finden Sie unter Native AOT-Bereitstellung. Da AOT auf der Trimming-Unterstützung basiert, gilt auch ein Großteil der in der Version 1.6-experimental1 beschriebenen Trimming-bezogenen Anleitungen. Weitere Informationen finden Sie unter native AOT-Unterstützung .

Wie bereits erwähnt, sollten C#-Projekte über einen Paketverweis auf Microsoft.Windows.CsWinRT 2.1.1 (oder höher) verfügen. Diese Version enthält eine AOT-sichere ICustomPropertyProvider Implementierung. Typen, die mit dieser Unterstützung verwendet werden, sollten mit dem WinRT.GeneratedBindableCustomProperty-Attribut gekennzeichnet und partial gemacht werden.

Edge WebView2 SDK-Integration geändert

Das Windows-App-SDK verwendet jetzt das Edge WebView2 SDK als NuGet-Referenz, anstatt eine hartcodierte Version des Edge WebView2 SDK einzubetten. Mit dem neuen Modell können Apps eine neuere Version des Microsoft.Web.WebView2-Pakets auswählen, anstatt auf die Version beschränkt zu sein, mit der das Windows-App-SDK erstellt wurde. Mit dem neuen Modell können Apps auch auf NuGet-Pakete verweisen, die auch auf das Edge WebView2 SDK verweisen. Weitere Informationen finden Sie im GitHub-Issue #5689.

Neue Paketbereitstellungs-APIs

Die Paketverwaltungs-API hat mehrere Verbesserungen erhalten, darunter Is*ReadyOrNewerAvailable*(), EnsureReadyOptions.RegisterNewerIfAvailable, Is*Provisioned*(), IsPackageRegistrationPending() und mehrere Fehlerkorrekturen. Weitere Informationen finden Sie unter PackageManagement.md und Pullanforderung #4453 .

Verbesserte TabView-Registerkarte ausreißen

TabView unterstützt einen neuen CanTearOutTabs-Modus, der eine erweiterte Benutzeroberfläche zum Ziehen von Registerkarten in ein neues Fenster bietet. Wenn diese neue Option aktiviert ist, ähnelt das Ziehen von Registerkarten in Edge und Chrome sehr dem Ziehen von Registerkarten, bei dem während des Ziehens sofort ein neues Fenster erstellt wird, sodass der Benutzer die Registerkarte an den Rand des Bildschirms ziehen kann, um das Fenster in einer reibungslosen Bewegung zu maximieren oder anzudocken. Diese Implementierung verwendet auch keine Drag-and-Drop-APIs, sodass sie nicht durch Einschränkungen in diesen APIs beeinträchtigt wird. Insbesondere wird das Ausreißen von Registerkarten in Prozessen unterstützt, die als Administrator ausgeführt werden.

Weitere wichtige Änderungen
  • Wir haben eine neue ColorHelper.ToDisplayName() API hinzugefügt, die diese Lücke von UWP füllt.
  • Es wurde eine neue Microsoft.Windows.Globalization.ApplicationLanguages-Klasse hinzugefügt, die insbesondere ein neues PrimaryLanguageOverride-Feature enthält. Weitere Informationen finden Sie im GitHub-Issue #4523.
  • ItemsWrapGrid nicht versiegelt. Dies sollte eine abwärtskompatible Änderung sein.
  • PipsPager unterstützt einen neuen Modus, in dem er zwischen den ersten und Listenelementen umbrochen werden kann.
  • RatingControl ist jetzt besser anpassbar, indem einige hartcodierte Formateigenschaften in Designressourcen verschoben werden. Dadurch können Apps diese Werte überschreiben, um die Darstellung von RatingControl besser anzupassen.
Bekannte Probleme
  • Wenn der Debugger so eingestellt ist, dass er bei allen C++-Ausnahmen anhält, wird er bei einem Paar lauter Ausnahmen beim Start im BCP47-Code (Windows Globalization) anhalten.
Fehlerbehebungen
  • Einige Probleme beim Umgang mit benutzerdefinierten Titelleistenszenarien wurden behoben. Weitere Informationen finden Sie in den GitHub-Problemen #7629, #9670, #9709 und #8431.
  • Es wurde ein Problem behoben, bei dem das InfoBadge-Symbol nicht sichtbar war. Weitere Informationen finden Sie im GitHub-Issue #8176.
  • Ein Problem wurde behoben, bei dem Symbole manchmal an der falschen Position in der CommandBarFlyout angezeigt wurden. Weitere Informationen finden Sie im GitHub-Issue #9409.
  • Ein Problem mit dem Tastaturfokus in Menüs beim Öffnen oder Schließen eines Untermenüs wurde behoben. Weitere Informationen finden Sie im GitHub-Issue #9519.
  • Ein Problem wurde behoben, bei dem TreeView den falschen IsExpanded-Zustand beim Recycling von Elementen verwendet hat. Weitere Informationen finden Sie im GitHub-Issue #9549.
  • Ein Problem beim Verwenden einer ElementName-Bindung in einer ItemsRepeater.ItemTemplate wurde behoben. Weitere Informationen finden Sie im GitHub-Issue #9715.
  • Es wurde ein Problem behoben, bei dem das erste Element in einer ItemsRepeater manchmal an einer falschen Position war. Weitere Informationen finden Sie im GitHub-Issue #9743.
  • Es wurde ein Problem behoben, bei dem InputNonClientPointerSource manchmal die Eingabe über die Schaltflächen „Min/Max/Schließen“ unterbrach. Weitere Informationen finden Sie im GitHub-Issue #9749.
  • Ein Kompilierungsfehler bei Verwendung von Microsoft.UI.Interop.h mit clang-cl wurde behoben. Weitere Informationen finden Sie im GitHub-Issue #9771.
  • Es wurde ein Problem behoben, bei dem das CharacterReceived-Ereignis in ComboBox/TextBox nicht funktionierte. Weitere Informationen finden Sie im GitHub-Issue #9786.
  • Das Problem in den 1.6-experimentellen Builds wurde behoben, bei denen das Zeigereingabeverhalten auf CanTearOutTabs Monitoren mit unterschiedlichem Skalierungsfaktor als 100%falsch war. Weitere Informationen finden Sie unter GitHub-Problem #9791.
  • Das Problem im Build 1.6-experimental2 wurde behoben, bei dem einige Sprachübersetzungen für ColorHelper.ToDisplayName() Zeichencodierungsprobleme hatten.
  • Es wurde ein Problem von 1.6-experimental1 behoben, bei dem NumberBox die richtigen Vordergrund- und Hintergrundfarben nicht verwendet wurden. Weitere Informationen finden Sie unter GitHub-Problem #9714.
  • Es wurde ein Problem behoben, bei dem doppelte KeyUp-Ereignisse für Pfeil- und Tabulatortasten ausgelöst wurden. Weitere Informationen finden Sie im GitHub-Issue #9399.
  • Es wurde ein Problem behoben, bei dem das PowerManager.SystemSuspendStatusChanged-Ereignis nicht zum Abrufen des SystemSuspendStatus-Ereignisses verwendet werden konnte. Weitere Informationen finden Sie im GitHub-Issue #2833.
  • Es wurde ein Problem behoben, bei dem der anfängliche Tastaturfokus nicht korrekt auf ein WebView2 gelegt wurde, wenn dies das einzige Steuerelement im Fenster war.
  • Es wurde ein Problem behoben, das bei der Verwendung von ExtendsContentIntoTitleBar=true auftrat, bei dem die Schaltflächen „Min/Max/Schließen“ nicht korrekt in der UI-Automatisierung angezeigt wurden, was dazu führte, dass Voice Access keine Zahlen für diese Schaltflächen anzeigte.
  • Es wurde ein Problem behoben, bei dem eine App aufgrund unerwarteter Eintrittsinvarianz in einer Sperrprüfung abstürzte.
  • Es wurde ein Problem behoben, bei dem Hyperlink-Farben beim Wechseln in ein Design mit hohem Kontrast nicht ordnungsgemäß aktualisiert wurden.
  • Es wurde ein Problem behoben, bei dem das Ändern der Sammlung einer ListView in einem Hintergrundfenster dazu führen konnte, dass dieses Fenster fälschlicherweise in den Vordergrund gerückt wurde und den Fokus erhielt.
  • Ein Problem in Version 1.6-experimental1 wurde behoben, bei dem das Setzen von AcrylicBrush.TintLuminosityOpacity in eine .xaml-Datei innerhalb eines Klassenbibliotheksprojekts einen Absturz mit einem Typkonvertierungsfehler verursachte.
  • Es wurde ein Problem behoben, bei dem das Aufrufen der ItemsRepeater.StartBringIntoView manchmal dazu führte, dass Elemente nicht mehr angezeigt werden.
  • Es wurde ein Problem behoben, bei dem das Berühren und Ziehen einer Button in einer ScrollViewer diese in einem gedrückten Zustand lassen würde.
  • IntelliSense wurde mit Informationen für viele neuere Typen und Member aktualisiert.
  • Es wurde ein Problem behoben, bei dem durch Klicken in einen leeren Bereich eines ScrollViewer immer der Fokus auf das erste fokussierbare Steuerelement im ScrollViewer verschoben und in die Ansicht gescrollt wurde. Weitere Informationen finden Sie im GitHub-Issue #597.
  • Es wurde ein Problem behoben, bei dem das Window.Activated-Ereignis manchmal mehrmals ausgelöst wurde. Weitere Informationen finden Sie im GitHub-Issue #7343.
  • Es wurde ein Problem behoben, bei dem das Festlegen der NavigationViewItem.IsSelected-Eigenschaft auf true verhinderte, dass die untergeordneten Elemente, wenn erweitert, angezeigt wurden. Weitere Informationen finden Sie im GitHub-Issue #7930.
  • Es wurde ein Problem behoben, bei dem MediaPlayerElement Beschriftungen mit None- oder DropShadow-Randeffekten nicht ordnungsgemäß anzeigte. Weitere Informationen finden Sie im GitHub-Issue #7981.
  • Es wurde ein Problem behoben, bei dem die Flyout.ShowMode-Eigenschaft beim Anzeigen des Flyouts nicht verwendet wurde. Weitere Informationen finden Sie im GitHub-Issue #7987.
  • Es wurde ein Problem behoben, bei dem NumberBox manchmal Rundungsfehler aufwies. Weitere Informationen finden Sie im GitHub-Issue #8780.
  • Es wurde ein Problem behoben, bei dem die Verwendung einer Bibliothek, die mit einer älteren Version des Windows App SDK kompiliert wurde, einen Fehler beim Versuch, einen Typ oder eine Eigenschaft zu finden, auftritt. Weitere Informationen finden Sie im GitHub-Issue #8810.
  • Ein Problem wurde behoben, bei dem der anfängliche Tastaturfokus beim Starten eines Fensters nicht festgelegt wurde. Weitere Informationen finden Sie im GitHub-Issue #8816.
  • Es wurde ein Problem behoben, bei dem FlyoutShowMode.TransientWithDismissOnPointerMoveAway nach der erstmaligen Anzeige nicht mehr funktionierte. Weitere Informationen finden Sie im GitHub-Issue #8896.
  • Es wurde ein Problem behoben, bei dem einige Steuerelemente die Eigenschaften Foreground und Background nicht ordnungsgemäß an eine Vorlage gebunden haben. Weitere Informationen finden Sie in den GitHub-Problemen #7070, #9020, #9029, #9083 und #9102.
  • Es wurde ein Problem behoben, bei dem ThemeResources, die in VisualStateManager-Settern verwendet wurden, bei einem Designwechsel nicht aktualisiert wurden. Dies hatte häufig Auswirkungen auf Steuerelemente in Flyouts. Weitere Informationen finden Sie im GitHub-Issue #9198.
  • Es wurde ein Problem behoben, bei dem WebView den Schlüsselfokus verlor, was zu zusätzlichen Weichzeichner-/Fokusereignissen und anderen Problemen führte. Weitere Informationen finden Sie im GitHub-Issue #9288.
  • Ein Problem wurde behoben, bei dem NavigationView einen Bindungsfehler in der Debugausgabe anzeigte. Weitere Informationen finden Sie im GitHub-Issue #9384.
  • Ein Problem wurde behoben, bei dem SVG-Dateien, die ein negatives Viewbox-Element definieren, nicht mehr gerendert wurden. Weitere Informationen finden Sie im GitHub-Issue #9415.
  • Es wurde ein Problem behoben, bei dem das Ändern der ItemsView.Layout-Ausrichtung dazu führte, dass ein Element entfernt wurde. Weitere Informationen finden Sie im GitHub-Issue #9422.
  • Es wurde ein Problem behoben, bei dem beim Scrollen einer ScrollView eine Menge Debugausgabe erzeugt wurde. Weitere Informationen finden Sie im GitHub-Issue #9434.
  • Es wurde ein Problem behoben, bei dem MapContorl.InteractiveControlsVisible nicht ordnungsgemäß funktionierte. Weitere Informationen finden Sie im GitHub-Issue #9486.
  • Es wurde ein Problem behoben, bei dem das MapControl.MapElementClick-Ereignis nicht ordnungsgemäß ausgelöst wurde. Weitere Informationen finden Sie im GitHub-Issue #9487.
  • Es wurde ein Problem behoben, bei dem x:Bind vor der Verwendung eines schwachen Verweises nicht auf NULL überprüft wurde, was zu einem Absturz führen konnte. Weitere Informationen finden Sie im GitHub-Issue #9551.
  • Es wurde ein Problem behoben, bei dem das Ändern der TeachingTip.Target-Eigenschaft ihre Position nicht ordnungsgemäß aktualisierte. Weitere Informationen finden Sie im GitHub-Issue #9553.
  • Ein Problem wurde behoben, bei dem Dropdowns in WebView2 nicht reagierten. Weitere Informationen finden Sie im GitHub-Issue #9566.
  • Ein Speicherverlust bei Verwendung von GeometryGroup wurde behoben. Weitere Informationen finden Sie im GitHub-Issue #9578.
  • Es wurde ein Problem behoben, bei dem das Scrollen durch eine sehr große Anzahl von Elementen aus einem ItemRepeater in einer ScrollView zu leeren Renderframes führen konnte. Weitere Informationen finden Sie im GitHub-Issue #9643.
  • Es wurde ein Problem behoben, bei dem SceneVisual nicht funktionierte.
Neue APIs in 1.6.0-preview1

Version 1.6-preview1 enthält die folgenden neuen APIs im Vergleich zur stabilen Version 1.5:

Microsoft.UI

    ColorHelper
        ToDisplayName
Microsoft.UI.Input

    EnteredMoveSizeEventArgs
    EnteringMoveSizeEventArgs
    ExitedMoveSizeEventArgs
    InputNonClientPointerSource
        EnteredMoveSize
        EnteringMoveSize
        ExitedMoveSize
        WindowRectChanged
        WindowRectChanging

    MoveSizeOperation
    WindowRectChangedEventArgs
    WindowRectChangingEventArgs
Microsoft.UI.Xaml

    XamlRoot
        CoordinateConverter
Microsoft.UI.Xaml.Automation.Peers

    ScrollPresenterAutomationPeer
Microsoft.UI.Xaml.Controls

    PipsPager
        WrapMode
        WrapModeProperty

    PipsPagerWrapMode
    TabView
        CanTearOutTabs
        CanTearOutTabsProperty
        ExternalTornOutTabsDropped
        ExternalTornOutTabsDropping
        TabTearOutRequested
        TabTearOutWindowRequested

    TabViewExternalTornOutTabsDroppedEventArgs
    TabViewExternalTornOutTabsDroppingEventArgs
    TabViewTabTearOutRequestedEventArgs
    TabViewTabTearOutWindowRequestedEventArgs
Microsoft.Windows.Globalization

    ApplicationLanguages
Microsoft.Windows.Management.Deployment

    EnsureReadyOptions
        RegisterNewerIfAvailable

    PackageDeploymentFeature
    PackageDeploymentManager
        IsPackageDeploymentFeatureSupported
        IsPackageProvisioned
        IsPackageProvisionedByUri
        IsPackageReadyOrNewerAvailable
        IsPackageReadyOrNewerAvailableByUri
        IsPackageSetProvisioned
        IsPackageSetReadyOrNewerAvailable

    PackageReadyOrNewerAvailableStatus
Microsoft.Windows.Storage

    ApplicationData
    ApplicationDataContainer
    ApplicationDataContract
    ApplicationDataCreateDisposition
    ApplicationDataLocality

Version 1.6 Experimental (1.6.0-experimental2)

Hinweis

Phi Silica- und OCR-APIs sind in dieser Version nicht enthalten. Diese werden in einer zukünftigen Version von 1.6 verfügbar sein.

Native AOT-Support-Updates

In 1.6-experimental1 generierte der XAML-Compiler Code XamlTypeInfo.g.cs , der nicht sicher für AOT/Trimming war. Dies bezieht sich auf GitHub-Problem #9675, obwohl es dieses Problem nicht vollständig behoben.

Edge WebView2 SDK-Integration geändert

Das Windows-App-SDK verwendet jetzt das Edge WebView2 SDK als NuGet-Referenz, anstatt eine hartcodierte Version des Edge WebView2 SDK einzubetten. Mit dem neuen Modell können Apps eine neuere Version des Microsoft.Web.WebView2-Pakets auswählen, anstatt auf die Version beschränkt zu sein, mit der das Windows-App-SDK erstellt wurde. Mit dem neuen Modell können Apps auch auf NuGet-Pakete verweisen, die auch auf das Edge WebView2 SDK verweisen. Weitere Informationen finden Sie im GitHub-Issue #5689.

Neue Paketbereitstellungs-APIs

Die Paketverwaltungs-API hat mehrere Verbesserungen erhalten, darunter Is*ReadyOrNewerAvailable*(), EnsureReadyOptions.RegisterNewerIfAvailable, Is*Provisioned*(), IsPackageRegistrationPending() und mehrere Fehlerkorrekturen. Weitere Informationen finden Sie unter PackageManagement.md und Pullanforderung #4453 .

Weitere wichtige Änderungen
  • Ab 1.6-experimental2 wird die neueste WinUI 3-Quelle nun in der Hauptverzweigung im GitHub-Repository von microsoft-ui-xaml veröffentlicht, wodurch die Quellsuche in diesem Repository ermöglicht wird.
  • Wir haben eine neue ColorHelper.ToDisplayName() API hinzugefügt, die diese Lücke von UWP füllt.
    • Bekanntes Problem: Einige Sprachübersetzungen haben Zeichencodierungsprobleme. Dies wird in der nächsten Version von 1.6 behoben.
  • Es wurde eine neue Microsoft.Windows.Globalization.ApplicationLanguages-Klasse hinzugefügt, die insbesondere ein neues PrimaryLanguageOverride-Feature enthält. Weitere Informationen finden Sie im GitHub-Issue #4523.
  • Neue Erweiterungen ermöglichen Widget-Anbietern die Bereitstellung von Widgets mit Webinhalten und Ankündigungen für Widgets.
Neue APIs für 1.6-experimental2

1.6-experimental2 enthält die folgenden neuen APIs. Diese APIs sind nicht experimentell, aber noch nicht in einer stabilen Version des Windows App SDK enthalten.

Microsoft.UI.Xaml.Controls

    PipsPager
        WrapMode
        WrapModeProperty

    PipsPagerWrapMode
Microsoft.Windows.Globalization

    ApplicationLanguages
Microsoft.Windows.Management.Deployment

    EnsureReadyOptions
        RegisterNewerIfAvailable

    PackageDeploymentFeature
    PackageDeploymentManager
        IsPackageDeploymentFeatureSupported
        IsPackageProvisioned
        IsPackageProvisionedByUri
        IsPackageReadyOrNewerAvailable
        IsPackageReadyOrNewerAvailableByUri
        IsPackageSetProvisioned
        IsPackageSetReadyOrNewerAvailable

    PackageReadyOrNewerAvailableStatus
Zusätzliche 1.6-experimental2-APIs

Diese Version enthält die folgenden neuen und geänderten experimentellen APIs:

Microsoft.UI

    ColorHelper
        ToDisplayName
Microsoft.UI.Composition

    CompositionNotificationDeferral
Microsoft.UI.Composition.Experimental

    ExpCompositionVisualSurface
    ExpExpressionNotificationProperty
    IExpCompositionPropertyChanged
    IExpCompositionPropertyChangedListener
    IExpCompositor
    IExpVisual
Microsoft.UI.Content

    AutomationOptions
    ChildContentLink
    ContentAppWindowBridge
    ContentDisplayOrientations
    ContentExternalBackdropLink
    ContentExternalOutputLink
    ContentIsland
        Children
        Compositor
        Connected
        ConnectionInfo
        ConnectRemoteEndpoint
        Create
        Disconnected
        FindAllForCompositor
        FragmentRootAutomationProvider
        GetByVisual
        IsRemoteEndpointConnected
        NextSiblingAutomationProvider
        Offset
        ParentAutomationProvider
        PreviousSiblingAutomationProvider
        Root
        RotationAngleInDegrees

    ContentIslandEnvironment
        AutomationOption
        CurrentOrientation
        DisplayScale
        NativeOrientation
        ThemeChanged

    ContentSite
        Compositor
        Offset
        RotationAngleInDegrees
        SetContentNodeParent
        SetIsInputPassThrough
        SiteVisual
        TryGetAutomationProvider

    ContentSiteAutomationProviderRequestedEventArgs
    ContentSiteEnvironment
        CurrentOrientation
        DisplayScale
        NativeOrientation
        NotifyThemeChanged

    ContentSiteView
        Offset
        RotationAngleInDegrees

    CoreWindowSiteBridge
    CoreWindowTopLevelWindowBridge
    DesktopChildSiteBridge
        AcceptRemoteEndpoint
        ConnectionInfo
        IsRemoteEndpointConnected
        RemoteEndpointConnecting
        RemoteEndpointDisconnected
        RemoteEndpointRequestedStateChanged

    DesktopSiteBridge
        TryCreatePopupSiteBridge

    EndpointConnectionEventArgs
    EndpointRequestedStateChangedEventArgs
    IContentIslandEndpointConnectionPrivate
    IContentLink
    IContentNodeOwner
    IContentSiteBridge2
    IContentSiteBridgeAutomation
    IContentSiteBridgeEndpointConnectionPrivate
    PopupWindowSiteBridge
    ProcessStarter
    ReadOnlyDesktopSiteBridge
    SystemVisualSiteBridge
Microsoft.UI.Input

    EnteredMoveSizeEventArgs
    EnteringMoveSizeEventArgs
    ExitedMoveSizeEventArgs
    InputKeyboardSource
        GetForWindowId

    InputLayoutPolicy
    InputLightDismissAction
        GetForIsland

    InputNonClientPointerSource
        EnteredMoveSize
        EnteringMoveSize
        ExitedMoveSize
        WindowRectChanged
        WindowRectChanging

    InputPointerActivationBehavior
    InputPointerSource
        ActivationBehavior
        DirectManipulationHitTest
        GetForVisual
        GetForWindowId
        RemoveForVisual
        TouchHitTesting
        TrySetDeviceKinds

    MoveSizeOperation
    ProximityEvaluation
    TouchHitTestingEventArgs
    WindowRectChangedEventArgs
    WindowRectChangingEventArgs
Microsoft.UI.Input.Experimental

    ExpInputSite
    ExpPointerPoint
Microsoft.UI.Windowing

    AppWindow
        DefaultTitleBarShouldMatchAppModeTheme

    DisplayArea
        GetMetricsFromWindowId
Microsoft.UI.Xaml

    XamlIsland
    XamlRoot
        CoordinateConverter
        TryGetContentIsland
Microsoft.UI.Xaml.Automation.Peers

    PagerControlAutomationPeer
    ScrollPresenterAutomationPeer
Microsoft.UI.Xaml.Controls

    ContentDialogPlacement
        UnconstrainedPopup

    ElementFactory
    FlowLayout
    FlowLayoutAnchorInfo
    FlowLayoutLineAlignment
    FlowLayoutState
    IApplicationViewSpanningRects
    IndexPath
    ISelfPlayingAnimatedVisual
    ItemContainer
        CanUserInvoke
        CanUserInvokeProperty
        CanUserSelect
        CanUserSelectProperty
        ItemInvoked
        MultiSelectMode
        MultiSelectModeProperty

    ItemContainerInteractionTrigger
    ItemContainerInvokedEventArgs
    ItemContainerMultiSelectMode
    ItemContainerUserInvokeMode
    ItemContainerUserSelectMode
    LayoutPanel
    NumberBox
        InputScope
        InputScopeProperty
        TextAlignment
        TextAlignmentProperty

    PagerControl
    PagerControlButtonVisibility
    PagerControlDisplayMode
    PagerControlSelectedIndexChangedEventArgs
    PagerControlTemplateSettings
    ProgressRing
        DeterminateSource
        DeterminateSourceProperty
        IndeterminateSource
        IndeterminateSourceProperty

    RecyclePool
    RecyclingElementFactory
    ScrollingViewChangingEventArgs
    ScrollView
        ViewChanging

    SelectionModel
    SelectionModelChildrenRequestedEventArgs
    SelectionModelSelectionChangedEventArgs
    SelectTemplateEventArgs
    StackLayout
        IsVirtualizationEnabled
        IsVirtualizationEnabledProperty

    StackLayoutState
    TabView
        CanTearOutTabs
        CanTearOutTabsProperty
        ExternalTornOutTabsDropped
        ExternalTornOutTabsDropping
        TabTearOutRequested
        TabTearOutWindowRequested

    TabViewExternalTornOutTabsDroppedEventArgs
    TabViewExternalTornOutTabsDroppingEventArgs
    TabViewTabTearOutRequestedEventArgs
    TabViewTabTearOutWindowRequestedEventArgs
    TitleBar
    TitleBarAutomationPeer
    TitleBarTemplateSettings
    UniformGridLayoutState
Microsoft.UI.Xaml.Controls.Primitives

    ScrollPresenter
        ViewChanging
Microsoft.Windows.ApplicationModel.WindowsAppRuntime

    DeploymentManager
        Repair

    DeploymentStatus
        PackageRepairFailed

    ReleaseInfo
    RuntimeInfo
    VersionInfoContract
Microsoft.Windows.Widgets.Feeds.Providers

    FeedManager
        TryRemoveAnnouncementById

    IFeedManager3
Microsoft.Windows.Widgets.Notifications

    WidgetAnnouncement
    WidgetAnnouncementInvokedArgs
Microsoft.Windows.Widgets.Providers

    IWidgetAnnouncementInvokedTarget
    IWidgetManager2
    IWidgetManager3
    IWidgetProviderMessage
    IWidgetResourceProvider
    WidgetManager
        SendMessageToContent
        TryRemoveAnnouncementById
        TryShowAnnouncement

    WidgetMessageReceivedArgs
    WidgetResourceRequest
    WidgetResourceRequestedArgs
    WidgetResourceResponse
Bekannte Probleme
  • Bei TabView-Registerkartenabbruch ist das Zeigereingabeverhalten für CanTearOutTabs auf Monitoren mit skalierungsbedingtem Skalierungsfaktor von 100 % falsch. Dies wird in der nächsten Version von 1.6 behoben.
Fehlerbehebungen
  • Es wurde ein Problem von 1.6-experimental1 behoben, bei dem NumberBox die richtigen Vordergrund- und Hintergrundfarben nicht verwendet wurden. Weitere Informationen finden Sie unter GitHub-Problem #9714.
  • Es wurde ein Problem behoben, bei dem doppelte KeyUp-Ereignisse für Pfeil- und Tabulatortasten ausgelöst wurden. Weitere Informationen finden Sie im GitHub-Issue #9399.
  • Es wurde ein Problem behoben, bei dem das PowerManager.SystemSuspendStatusChanged-Ereignis nicht zum Abrufen des SystemSuspendStatus-Ereignisses verwendet werden konnte. Weitere Informationen finden Sie im GitHub-Issue #2833.
  • Es wurde ein Problem behoben, bei dem der anfängliche Tastaturfokus nicht korrekt auf ein WebView2 gelegt wurde, wenn dies das einzige Steuerelement im Fenster war.
  • Es wurde ein Problem behoben, das bei der Verwendung von ExtendsContentIntoTitleBar=true auftrat, bei dem die Schaltflächen „Min/Max/Schließen“ nicht korrekt in der UI-Automatisierung angezeigt wurden, was dazu führte, dass Voice Access keine Zahlen für diese Schaltflächen anzeigte.
  • Es wurde ein Problem behoben, bei dem eine App aufgrund unerwarteter Eintrittsinvarianz in einer Sperrprüfung abstürzte.
  • Es wurde ein Problem von 1.6-experimental1 behoben, bei dem TitleBar nur das Symbol und der Titel angezeigt wurden, da einige Elemente beim Laden nicht angezeigt wurden.
  • Es wurde ein Problem behoben, bei dem Hyperlink-Farben beim Wechseln in ein Design mit hohem Kontrast nicht ordnungsgemäß aktualisiert wurden.
  • Es wurde ein Problem behoben, bei dem das Ändern der Sammlung einer ListView in einem Hintergrundfenster dazu führen konnte, dass dieses Fenster fälschlicherweise in den Vordergrund gerückt wurde und den Fokus erhielt.
  • Ein Problem in Version 1.6-experimental1 wurde behoben, bei dem das Setzen von AcrylicBrush.TintLuminosityOpacity in eine .xaml-Datei innerhalb eines Klassenbibliotheksprojekts einen Absturz mit einem Typkonvertierungsfehler verursachte.
  • Es wurde ein Problem behoben, bei dem das Aufrufen der ItemsRepeater.StartBringIntoView manchmal dazu führte, dass Elemente nicht mehr angezeigt werden.
  • Es wurde ein Problem behoben, bei dem das Berühren und Ziehen einer Button in einer ScrollViewer diese in einem gedrückten Zustand lassen würde.
  • IntelliSense wurde mit Informationen für viele neuere Typen und Member aktualisiert.

Version 1.6 Experimental (1.6.0-experimental1)

Dies ist die neueste Version des experimentellen Kanals.

Passen Sie Ihre Windows App SDK NuGet-Version auf 1.6.240531000-experimental1 an, um sie herunterzuladen.

Erforderliche C#-Projektänderungen für 1.6-experimental1

In 1.6-experimental1 erfordern verwaltete Windows App SDK-Apps Microsoft.Windows.SDK.NET.Ref*.*.*.35-preview (oder höher), die über WindowsSdkPackageVersion in Ihrer csproj Datei angegeben werden können. Beispiel:

<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
       <OutputType>WinExe</OutputType>
       <TargetFramework>net8.0-windows10.0.22621.0</TargetFramework>
       <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
       <WindowsSdkPackageVersion>10.0.22621.35-preview</WindowsSdkPackageVersion>
   <PropertyGroup>
   ...

Darüber hinaus sollten verwaltete Windows App SDK-Apps mit C#/WinRT auf Microsoft.Windows.CsWinRT2.1.0-prerelease.240602.1 (oder höher) aktualisiert werden.

Native AOT-Unterstützung

Hinweis

Für Windows App SDK 1.6.0 stable ist die folgende Anleitung veraltet. Projekte sollten stattdessen einfach bedingungslos auf PublishAot" gesetzt werden.

Die .NET PublishAot-Projekteigenschaft wird jetzt für die systemeigene Ahead-Of-Time-Kompilierung unterstützt. Ausführliche Informationen finden Sie unter native AOT-Bereitstellung. Da AOT auf der Trimming-Unterstützung basiert, gilt auch ein Großteil der folgenden Kürzungsanleitungen für AOT.

Zur PublishAot Unterstützung benötigen Sie zusätzlich zu den im vorherigen Abschnitt beschriebenen Änderungen des C#-Projekts auch einen Paketverweis auf Microsoft.Windows.CsWinRT2.1.0-prerelease.240602.1 (oder höher), um den Quellgenerator aus diesem Paket zu aktivieren.

Da das Windows-App-SDK beim Bereitstellen von F5 Veröffentlichungsziele aufruft, empfehlen wir, PublishAot zur NuGet-Wiederherstellungszeit zu aktiviere , indem Sie csproj Ihrer Datei hinzufügen:

<PublishAot Condition="'$(ExcludeRestorePackageImports)'=='true'">true</PublishAot>

Darüber hinaus wird empfohlen, beim Veröffentlichen von Releasekonfigurationen bedingt zu aktivieren PublishAot , entweder in Veröffentlichungsprofilen oder im Projekt:

<PublishAot Condition="'$(Configuration)'=='Release'">true</PublishAot>

Beheben von AOT-Problemen

In dieser Version ist der Entwickler dafür verantwortlich, dass alle Typen ordnungsgemäß gerootet sind, um ein Trimmen (z. B. mit spiegelbasierten {Binding}-Zielen) zu vermeiden. Spätere Versionen werden sowohl C#/WinRT als auch den XAML-Compiler verbessern, um das Rooting nach Möglichkeit zu automatisieren, Entwickler auf Trimmingrisiken hinzuweisen und Mechanismen zur Behebung bereitzustellen.

Teilklassen

C#/WinRT enthält PublishAot auch Unterstützung in Version 2.1.0-prerelease.240602.1. Um eine Klasse für die AOT-Veröffentlichung mit C#/WinRT zu aktivieren, muss sie zuerst markiert partial werden. Dadurch kann der C#/WinRT AOT-Quellanalysator die Klassen für statische Analysen attributieren. Nur Klassen (die Methoden enthalten, die Ziele des Trimmings) erfordern dieses Attribut.

Spiegelungsfreie Techniken

Um die AOT-Kompatibilität zu ermöglichen, sollten spiegelbasierte Techniken durch statisch typierte Serialisierung, AppContext.BaseDirectory, typeof() usw. ersetzt werden. Ausführliche Informationen finden Sie in der Einführung zum Trimming von Warnungen.

Rooting-Typen

Bis zur vollständigen Unterstützung für {Binding} die Implementierung können Typen wie folgt vor dem Kürzen beibehalten werden: Bei einem Projekt P , das assembly A mit Typ T im Namespace Nverwendet wird, auf den nur dynamisch verwiesen wird (also normalerweise gekürzt), T kann folgendes beibehalten werden:

P.csproj:

<ItemGroup>
    <TrimmerRootDescriptor Include="ILLink.Descriptors.xml" />
</ItemGroup>

ILLink.Descriptors.xml:

<?xml version="1.0" encoding="utf-8"?>
<linker>
    <assembly fullname="A">
        <type fullname="N.T" preserve="all" />
    </assembly>
</linker>

Vollständige XML-Ausdruckssyntax des Stammdeskriptors finden Sie unter Stammdeskriptoren.

Hinweis

Abhängigkeitspakete, die noch keine AOT-Unterstützung übernommen haben, können Laufzeitprobleme aufweisen.

Verbesserte TabView-Registerkarte ausreißen

TabView unterstützt einen neuen CanTearOutTabs-Modus, der eine erweiterte Benutzeroberfläche zum Ziehen von Registerkarten in ein neues Fenster bietet. Wenn diese neue Option aktiviert ist, ähnelt das Ziehen von Tabstopps in Edge und Chrome sehr ähnlich der Registerkartenziehfunktion, bei der während des Ziehens sofort ein neues Fenster erstellt wird, sodass der Benutzer es an den Rand des Bildschirms ziehen kann, um das Fenster in einer reibungslosen Bewegung zu maximieren oder anzudockt. Diese Implementierung verwendet auch keine Drag-and-Drop-APIs, sodass sie nicht durch Einschränkungen in diesen APIs beeinträchtigt wird. Insbesondere wird das Ausreißen von Registerkarten in Prozessen unterstützt, die als Administrator ausgeführt werden.

Bekanntes Problem: In dieser Version ist das Zeigereingabeverhalten auf CanTearOutTabs Monitoren mit einem Skalierungsfaktor von 100 % falsch. Dies wird in der nächsten Version von 1.6 behoben.

Neues Titelleisten-Steuerelement

Ein neues TitleBar Steuerelement erleichtert das Erstellen einer großartigen, anpassbaren Titelleiste für Ihre App mit den folgenden Features:

  • Konfigurierbare Symbol-, Titel- und Untertiteleigenschaften
  • Integrierte Schaltfläche "Zurück"
  • Die Möglichkeit, ein benutzerdefiniertes Steuerelement wie ein Suchfeld hinzuzufügen
  • Automatisches Ausblenden und Anzeigen von Elementen basierend auf der Fensterbreite
  • Angebote zum Anzeigen des aktiven oder inaktiven Fensterzustands
  • Unterstützung für standardmäßige Titelleistenfeatures wie ziehende Bereiche in leeren Bereichen, Reaktionsfähigkeit des Designs, Standardbeschriftungsschaltflächen (min/max/close) und integrierte Unterstützung für Barrierefreiheit

Das TitleBar Steuerelement wurde entwickelt, um verschiedene Kombinationen von Titelleisten zu unterstützen, sodass es flexibel ist, die gewünschte Oberfläche zu erstellen, ohne viele benutzerdefinierten Code schreiben zu müssen. Wir haben Feedback vom Prototyp der Titelleiste des Community-Toolkits erhalten und freuen uns auf weiteres Feedback!

Bekanntes Problem: In dieser Version wird das TitleBar Symbol und der Titel nur aufgrund eines Problems angezeigt, bei dem einige Elemente beim Laden nicht angezeigt werden. Um dies zu umgehen, verwenden Sie den folgenden Code, um die anderen Elemente zu laden (Untertitel, Kopfzeile, Inhalt und Fußzeile):

public MainWindow()
  {
      this.InitializeComponent();
      this.ExtendsContentIntoTitleBar = true;
      this.SetTitleBar(MyTitleBar);

      MyTitleBar.Loaded += MyTitleBar_Loaded;
  }

  private void MyTitleBar_Loaded(object sender, RoutedEventArgs e)
  {
      // Parts get delay loaded. If you have the parts, make them visible.
      VisualStateManager.GoToState(MyTitleBar, "SubtitleTextVisible", false);
      VisualStateManager.GoToState(MyTitleBar, "HeaderVisible", false);
      VisualStateManager.GoToState(MyTitleBar, "ContentVisible", false);
      VisualStateManager.GoToState(MyTitleBar, "FooterVisible", false);

      // Run layout so we re-calculate the drag regions.
      MyTitleBar.InvalidateMeasure();
  }

Dieses Problem wird in der nächsten Version 1.6 behoben.

Weitere wichtige Änderungen
  • ItemsWrapGrid nicht versiegelt. Dies sollte eine abwärtskompatible Änderung sein.
  • PipsPager unterstützt einen neuen Modus, in dem er zwischen den ersten und Listenelementen umbrochen werden kann.
  • RatingControl ist jetzt besser anpassbar, indem einige hartcodierte Formateigenschaften in Designressourcen verschoben werden. Dadurch können Apps diese Werte überschreiben, um die Darstellung von RatingControl besser anzupassen.
Neue APIs für 1.6-experimental1

1.6-experimental1 enthält die folgenden neuen APIs. Diese APIs sind nicht experimentell, aber noch nicht in einer stabilen Version des Windows App SDK enthalten.

Microsoft.UI.Xaml.Controls

    PipsPager
        WrapMode
        WrapModeProperty

    PipsPagerWrapMode
        None
        Wrap
Zusätzliche 1.6-experimental1-APIs

Diese Version enthält die folgenden neuen und geänderten experimentellen APIs:

Microsoft.UI.Content

    ChildContentLink
    ContentExternalOutputLink
        IsAboveContent

    ContentIsland
        Children
        Create
        FindAllForCompositor
        GetByVisual
        Offset
        RotationAngleInDegrees

    ContentSite
        Offset
        RotationAngleInDegrees

    ContentSiteView
        Offset
        RotationAngleInDegrees

    IContentLink
    IContentSiteBridge2
    ReadOnlyDesktopSiteBridge
Microsoft.UI.Input

    EnteredMoveSizeEventArgs
    EnteringMoveSizeEventArgs
    ExitedMoveSizeEventArgs
    InputNonClientPointerSource
        EnteredMoveSize
        EnteringMoveSize
        ExitedMoveSize
        WindowRectChanged
        WindowRectChanging

    MoveSizeOperation
    WindowRectChangedEventArgs
    WindowRectChangingEventArgs
Microsoft.UI.Windowing

    AppWindow
        DefaultTitleBarShouldMatchAppModeTheme
Microsoft.UI.Xaml

    XamlRoot
        CoordinateConverter
        TryGetContentIsland
Microsoft.UI.Xaml.Controls

    ScrollingViewChangingEventArgs
    ScrollView
        ViewChanging

    StackLayout
        IsVirtualizationEnabled
        IsVirtualizationEnabledProperty

    TabView
        CanTearOutTabs
        CanTearOutTabsProperty
        ExternalTornOutTabsDropped
        ExternalTornOutTabsDropping
        TabTearOutRequested
        TabTearOutWindowRequested

    TabViewExternalTornOutTabsDroppedEventArgs
    TabViewExternalTornOutTabsDroppingEventArgs
    TabViewTabTearOutRequestedEventArgs
    TabViewTabTearOutWindowRequestedEventArgs
    TitleBar
    TitleBarAutomationPeer
    TitleBarTemplateSettings
Microsoft.UI.Xaml.Controls.Primitives

    ScrollPresenter
        ViewChanging
Andere bekannte Probleme
  • Nicht-XAML-Anwendungen, die das ContentIsland.AutomationProviderRequested-Ereignis verwenden Microsoft.UI.Content.ContentIslands und nicht behandeln (oder nullptr als Automatisierungsanbieter zurückgeben), stürzt ab, wenn ein Barrierefreiheits- oder Benutzeroberflächenautomatisierungstool wie Voice Access, Sprachausgabe, Accessibility Insights, Inspect.exe usw. aktiviert ist.
Fehlerbehebungen

Die folgenden Fehlerkorrekturen sind in diesem Release enthalten:

  • Es wurde ein Problem behoben, bei dem durch Klicken in einen leeren Bereich eines ScrollViewer immer der Fokus auf das erste fokussierbare Steuerelement im ScrollViewer verschoben und in die Ansicht gescrollt wurde. Weitere Informationen finden Sie im GitHub-Issue #597.
  • Es wurde ein Problem behoben, bei dem das Window.Activated-Ereignis manchmal mehrmals ausgelöst wurde. Weitere Informationen finden Sie im GitHub-Issue #7343.
  • Ein Problem wurde behoben, durch das die NavigationViewItem.IsSelected Eigenschaft so festgelegt wurde, true dass die untergeordneten Elemente nicht angezeigt werden, wenn sie erweitert werden. Weitere Informationen finden Sie im GitHub-Issue #7930.
  • Es wurde ein Problem behoben, bei dem MediaPlayerElement Beschriftungen mit None- oder DropShadow-Randeffekten nicht ordnungsgemäß anzeigte. Weitere Informationen finden Sie im GitHub-Issue #7981.
  • Es wurde ein Problem behoben, bei dem die Flyout.ShowMode-Eigenschaft beim Anzeigen des Flyouts nicht verwendet wurde. Weitere Informationen finden Sie im GitHub-Issue #7987.
  • Es wurde ein Problem behoben, bei dem NumberBox manchmal Rundungsfehler aufwies. Weitere Informationen finden Sie im GitHub-Issue #8780.
  • Es wurde ein Problem behoben, bei der die Verwendung einer Bibliothek, die mit einer älteren Version von Windows App SDK kompiliert wurde, auf einen Versuch, einen Typ oder eine Eigenschaft zu finden, stoßen kann. Weitere Informationen finden Sie im GitHub-Issue #8810.
  • Es wurde ein Problem behoben, bei dem der anfängliche Tastaturfokus beim Starten eines Fensters nicht festgelegt wurde. Weitere Informationen finden Sie im GitHub-Issue #8816.
  • Es wurde ein Problem behoben, bei dem FlyoutShowMode.TransientWithDismissOnPointerMoveAway nach der ersten Anzeige nicht mehr funktionierte. Weitere Informationen finden Sie im GitHub-Issue #8896.
  • Es wurde ein Problem behoben, bei dem einige Steuerelemente die Eigenschaften Foreground und Background nicht ordnungsgemäß an eine Vorlage gebunden haben. Weitere Informationen finden Sie in den GitHub-Problemen #7070, #9020, #9029, #9083 und #9102.
  • Es wurde ein Problem behoben, bei dem ThemeResources, die in VisualStateManager-Settern verwendet wurden, bei einem Designwechsel nicht aktualisiert wurden. Dies hatte häufig Auswirkungen auf Steuerelemente in Flyouts. Weitere Informationen finden Sie im GitHub-Issue #9198.
  • Es wurde ein Problem behoben, bei dem WebView den Schlüsselfokus verlor, was zu zusätzlichen Weichzeichner-/Fokusereignissen und anderen Problemen führte. Weitere Informationen finden Sie im GitHub-Issue #9288.
  • Ein Problem wurde behoben, bei dem NavigationView ein Bindungsfehler in der Debugausgabe angezeigt werden kann. Weitere Informationen finden Sie im GitHub-Issue #9384.
  • Ein Problem wurde behoben, bei dem SVG-Dateien, die ein negatives Viewbox-Element definieren, nicht mehr gerendert wurden. Weitere Informationen finden Sie im GitHub-Issue #9415.
  • Es wurde ein Problem behoben, bei dem das Ändern der ItemsView.Layout-Ausrichtung dazu führte, dass ein Element entfernt wurde. Weitere Informationen finden Sie im GitHub-Issue #9422.
  • Es wurde ein Problem behoben, bei dem beim Scrollen einer ScrollView eine Menge Debugausgabe erzeugt wurde. Weitere Informationen finden Sie im GitHub-Issue #9434.
  • Es wurde ein Problem behoben, bei dem MapContorl.InteractiveControlsVisible nicht ordnungsgemäß funktioniert. Weitere Informationen finden Sie im GitHub-Issue #9486.
  • Es wurde ein Problem behoben, bei dem MapControl.MapElementClick das Ereignis nicht ordnungsgemäß ausgelöst wurde. Weitere Informationen finden Sie im GitHub-Issue #9487.
  • Es wurde ein Problem behoben, bei dem x:Bind vor der Verwendung eines schwachen Verweises nicht auf NULL überprüft, was zu einem Absturz führen kann. Weitere Informationen finden Sie im GitHub-Issue #9551.
  • Es wurde ein Problem behoben, bei dem das Ändern der Eigenschaft ihre TeachingTip.Target Position nicht ordnungsgemäß aktualisiert. Weitere Informationen finden Sie im GitHub-Issue #9553.
  • Ein Problem wurde behoben, bei dem Dropdowns in WebView2 nicht reagierten. Weitere Informationen finden Sie im GitHub-Issue #9566.
  • Ein Speicherverlust bei Verwendung von GeometryGroup wurde behoben. Weitere Informationen finden Sie im GitHub-Issue #9578.
  • Es wurde ein Problem behoben, bei dem das Scrollen durch eine sehr große Anzahl von Elementen aus einem ItemRepeater in einer ScrollView Datei zu leeren Renderframes führen kann. Weitere Informationen finden Sie im GitHub-Issue #9643.
  • Es wurde ein Problem behoben, bei dem SceneVisual nicht funktionierte.