Freigeben über


Neuerungen in WPF für .NET 10 Preview

Dieser Artikel enthält eine allgemeine Übersicht über die Neuerungen mit Windows Presentation Foundation (WPF) in .NET 10 Preview. Ausführliche Informationen finden Sie in den Veröffentlichungsankündigungen.

.NET 10 Preview 5 wurde im Juni 2025 veröffentlicht.

Release-Ankündigungen

Jede Releaseankündigung enthält detaillierte Informationen zu WPF-Änderungen für .NET 10:

Leistungsverbesserungen

Die Leistung wurde verbessert, indem interne Datenstrukturen durch .NET-Basistypen ersetzt werden, wie ReadOnlyCollection<T>. Dadurch werden die Zuordnungen in Benutzeroberflächenautomatisierungs- und Dateidialogfeldern minimiert und Pixelformatkonvertierungen beschleunigt.

Verbesserte Leistung durch Optimieren von Cachevorgängen, Arraybehandlung und Migrieren des Ladeprogramms der Schriftartsammlung zu verwaltetem Code.

Die Leistung wurde für das Rendern von Schriftarten, dynamische Ressourcen, Eingabekomposition, Ablaufverfolgungsprotokollierung, regex-Verwendung und XAML-Analyse optimiert.

Fluent Stiländerungen

Verschiedene Fehlerkorrekturen wurden in .NET 10 behoben, um die Fluent-Ui-Stilunterstützung in WPF zu verbessern. Die Unterstützung für den Fluent-UI-Stil befindet sich noch in Entwicklung.

Warnung

.NET 10 Preview 4 hat einen Fehler im Zusammenhang mit Fluent-Stilen verursacht. Weitere Informationen finden Sie in den Versionshinweisen zu .NET 10 Preview 4.

Änderungen an der Zwischenablage

WPF und Windows Forms verwenden jetzt dieselbe Zwischenablage-API. Beide Desktoptechnologien vereinheitlichen, wie sie mit der Zwischenablage interagieren.

.NET 9 hat BinaryFormatter eingestellt, das in einigen Zwischenablagevorgängen verwendet wird. Für diese Zwischenablagevorgänge müssen Sie sich für das Kompatibilitätspaket entscheiden oder den Vorgang umgehen. Um den Übergang zu erleichtern, wenn man von BinaryFormatter wegzieht, erklärt .NET 10 bestimmte Zwischenablagemethoden für veraltet und zeigt damit an, dass sie nicht mehr verwendet werden sollten. Weitere Methoden werden hinzugefügt, die bei der JSON-Serialisierung von Zwischenablagedaten helfen und die Notwendigkeit von BinaryFormatter umgehen.

Fehlerkorrekturen

Es wurden verschiedene Fehler behoben, einschließlich Cursortypen für Benutzeroberflächenelemente, Absturzproblemen, wenn Bitmapdatenströme null sind, Build- und Testschrittfehlern sowie kleineren Fehlern in BitmapMetadata und native Abhängigkeiten.

Lokalisierungsprobleme für ScrollViewer und ContextMenu behoben.

Über 4.000 Komponententests für System.Xaml und WindowsBase hinzugefügt.

Verbesserte Leistung durch Optimieren von Cachevorgängen, Arraybehandlung und Migrieren des Ladeprogramms der Schriftartsammlung zu verwaltetem Code.

Codebereinigung

Der Umstieg von .NET Framework hat ungenutzte Code Access Security (CAS)-bezogene Attribute und Code zurückgelassen. Viele dieser Elemente wurden in der .NET-Codebasis entfernt.

  • Entfernen Sie nicht verwendete CAS-Ressourcenzeichenfolgen und die zugehörigen Übersetzungen aus allen Bibliotheken.
  • Entfernen Sie nicht verwendete CAS- und XBAP-Code aus OleCmdHelper/ISecureCommand.
  • Entfernen Sie nicht verwendete CAS-Code aus FontSourceCollection/FontSource.

Es wurden umfangreiche Codebereinigungen durchgeführt, einschließlich Syntaxstandardisierung und Argumentklarierung, um die Lesbarkeit und Verwendbarkeit von Code zu verbessern. Debugging-Muster wurden modernisiert und ältere Konstrukte wie ArrayList wurden aus Gründen der Wartbarkeit abgeschafft.

Neue APIs

Community-Mitwirkender bstordrup hat MessageBox mit mehr Schaltflächen- und Ergebnisoptionen verbessert. Weitere Informationen finden Sie unter #9613.

namespace System.Windows
{
    public enum MessageBoxButton
    {
        OK = 0,
        OKCancel = 1,
+       AbortRetryIgnore = 2,
        YesNoCancel = 3,
        YesNo = 4,
+       RetryCancel = 5,
+       CancelTryContinue = 6,
    }

    public enum MessageBoxResult
    {
        None = 0,
        OK = 1,
        Cancel = 2,
+       Abort = 3,
+       Retry = 4,
+       Ignore = 5,
        Yes = 6,
        No = 7,
+       TryAgain = 10,
+       Continue = 11,
    }
}

Verschiedene Änderungen

  • Integrierte Entwurfszeitmarkupkompilierung, um reibungslosere Entwicklungsworkflows zu erleichtern.