Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье представлен общий обзор новых возможностей Windows Presentation Foundation (WPF) в .NET 10 Preview. Подробные сведения см. в объявлениях о выпуске.
.NET 10 Preview 5 был выпущен в июне 2025 года.
Объявления о выпуске
Каждое объявление о выпуске содержит подробные сведения об изменениях WPF для .NET 10:
- .NET 10 (предварительная версия 5)
- .NET 10 (предварительная версия 4)
- .NET 10 (предварительная версия 3)
- .NET 10 предварительная версия 2
- .NET 10 Предварительная версия 1
Улучшения производительности
Производительность была улучшена путем замены внутренних структур данных базовыми типами .NET, такими как ReadOnlyCollection<T>. Это минимизировало выделение ресурсов в автоматизации пользовательского интерфейса и диалоговых окнах, а также ускорило преобразование формата пикселей.
Улучшенная производительность путем оптимизации операций кэша, обработки массивов и переноса загрузчика коллекции шрифтов в управляемый код.
Производительность была оптимизирована для отрисовки шрифтов, динамических ресурсов, вводной обработки, журналирования трассировки, использования регулярных выражений и синтаксического анализа XAML.
Изменения стиля Fluent
В .NET 10 исправлены различные ошибки, чтобы улучшить поддержку стиля Fluent UI в WPF. Поддержка стиля пользовательского интерфейса Fluent по-прежнему выполняется.
Стили Fluent добавили дополнительные элементы управления, такие как:
Исправлена анимация для Expander.
Исправлены сбои, связанные с
HighContrast
.Добавлено отсутствие RecognizesAccessKey элементов управления.
Исправлены проблемы с макетом справа налево для MenuItem, Expander и TreeViewItem.
Предупреждение
В .NET 10 Preview 4 появилась ошибка, связанная с текучими стилями. Дополнительные сведения см. в заметках о выпуске .NET 10 (предварительная версия 4).
Изменения буфера обмена
WPF и Windows Forms теперь используют тот же API буфера обмена. Обе настольные технологии объединяют то, как они взаимодействуют с буфером обмена.
.NET 9 обесценил BinaryFormatter
, используемый в некоторых операциях буфера обмена. Эти операции буфера обмена требовали от вас присоединиться к пакету совместимости или обойти операцию. Чтобы облегчить боль в удалении от BinaryFormatter
, .NET 10 обнаживает определенные методы буфера обмена, чтобы указать, что они не должны использоваться. Дополнительные методы добавляются, чтобы помочь сериализации JSON с данными буфера обмена, обходя необходимость BinaryFormatter
.
Исправления ошибок
Устранены различные ошибки, включая типы курсоров элементов пользовательского интерфейса, проблемы со сбоями при нулевых потоках растровых изображений, ошибки на этапах сборки и тестирования, а также незначительные ошибки в BitmapMetadata и собственных зависимостях.
Устранены проблемы локализации для ScrollViewer и ContextMenu.
Добавлены более 4000 модульных тестов для System.Xaml
и WindowsBase
.
Улучшенная производительность путем оптимизации операций кэша, обработки массивов и переноса загрузчика коллекции шрифтов в управляемый код.
Очистка кода
Перемещение из .NET Framework оставило за собой неиспользуемые атрибуты и код, связанные с Code Access Security (CAS). Многие из них были удалены в базе кода .NET.
- Удалите неиспользуемые строки ресурсов CAS и его переводы из всех библиотек.
- Удалите неиспользуемый код CAS и XBAP из
OleCmdHelper/ISecureCommand
. - Удалите неиспользуемый код CAS из
FontSourceCollection/FontSource
.
Проводится обширная очистка кода, включая стандартизацию синтаксиса и ясность аргументов, для улучшения удобства чтения кода и удобства обслуживания. Шаблоны отладки были обновлены, и устаревшие элементы, такие как ArrayList
, были поэтапно выведены из использования для повышения поддерживаемости.
Новые API
Участник сообщества bstordrup добавил в MessageBox
больше опций кнопок и результатов. Дополнительные сведения см. в разделе #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,
}
}
Прочие изменения
- Интегрированная компиляция разметки во время разработки для упрощения рабочих процессов разработки.
.NET Desktop feedback