Заметки о выпуске пакета SDK для приложений Windows 1.6

Вы можете выбрать между стабильными, предварительными иэкспериментальными каналами в зависимости от потребностей разработки — от надежных рабочих сборок до раннего доступа к предстоящим функциям. Дополнительные сведения о каналах выпуска.

Сведения об обновленной среде выполнения и MSIX см. в разделе "Загрузки" для пакета SDK для приложений Windows.

Версия 1.6.9 (1.6.250602001)

Исправления ошибок
  • Исправлен потенциальный сбой в WindowChrome::SetTitleBar при закрытии окна. Дополнительные сведения см. в статье GitHub о проблеме 9203.

Версия 1.6.8 (1.6.250430001)

Поддержка создания папок ApplicationData.MachinePath

ApplicationData.MachineFolder теперь проще использовать в Windows >=10.0.26100.0 (Ge). Windows создаст папку Machine, если в систему добавится манифест пакета, поддерживающий добровольное участие, и если в системе присутствует Windows App SDK 1.6.8. Дополнительные сведения см. в спецификации ApplicationData.

Исправления ошибок
  • Исправлена телеметрия PackageDeploymentManager для правильного отслеживания состояния завершения. Дополнительные сведения см. в статье о проблеме GitHub #5297.
  • Исправлен сбой при использовании ввода с помощью пера в приложении для x86.
  • Исправлен потенциальный сбой, если окно уже уничтожено, когда WinUI пытается инициализировать для прокрутки.
  • Исправлены определения WINDOWSAPPSDK_RELEASE_PATCH и значения Microsoft::WindowsAppSDK::Release::Patch в WindowsAppSDK-VersionInfo.h, чтобы они не всегда равнялись 0. Теперь формат даты определяет сборку и имеет вид yymmdd, а значение патча — это дата в формате mmdd. Это изменение обеспечивает лучшую информацию об используемой версии среды выполнения без изменения размеров переменных или схемы версии.

Версия 1.6.7 (1.6.250402001)

Исправления ошибок
  • Улучшена телеметрия в сценариях сбоя в WindowsAppRuntimeInstall-<arch>.exe. Дополнительные сведения см. в статье о проблеме GitHub #5291.
  • Исправлена проблема, из-за которой входные данные указателя перестают работать при использовании клавиш со стрелками одновременно. Дополнительные сведения см. в статье о проблеме GitHub #10126.
  • Исправлена проблема, из-за которой приложения в удаленном рабочем столе перестают отвечать на входные данные указателя. Дополнительные сведения см. в статье GitHub о проблеме 10009. (Это то же самое исправление, что и исправление ввода указателя и клавиш со стрелками, так как удаленный рабочий стол автоматически отправляет некоторые нажатия клавиш при переключении туда и обратно.)
  • Исправлен потенциальный сбой, происходящий при попытке восстановить фокус окна, если событие активации доставлено для окна, которое закрывается.
  • Исправлена регрессия производительности, представленная в пакете SDK для приложений Windows 1.6 из-за отсутствия некоторых оптимизаций компоновщика WinUI.
  • Исправлена небольшая проблема с производительностью при создании нескольких окон и островов WinUI.
  • Исправлен потенциальный сбой, если ProgressBar::SetProgressBarIndicatorWidth вызывается на панели progressBar, которая не находится в дереве.
  • Исправлен потенциальный сбой, вызванный тем, что CPopup::EnsureBridgeClosed иногда приводит к повторному выполнению.
  • Исправлен возможный сбой при закрытии всплывающего окна из-за использования пустой коллекции дочерних элементов в CUIElement::FlushPendingKeepVisibleOperations.
  • Исправлено PackageDeploymentManager.EnsurePackage*Ready для обеспечения замены версии. Дополнительные сведения см. в статье о проблеме GitHub 5225.

Версия 1.6.6 (1.6.250228001)

Исправления ошибок Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.6.
  • Исправлена проблема, из-за которой дочернее окно, передающее WM_NCMOUSELEAVE в родительское окно, приводит к циклу, блокирующему новые события ввода мыши.
  • Исправлен сбой, который произойдет в следующем событии AppWindow.Changed после сбоя процесса WebView2.
  • Исправлен потенциальный сбой при использовании средства специальных возможностей и закрытии окна.
  • Исправлена проблема, из-за которой текстовое поле не принимало ввод с клавиатуры, если фокус был задан, щелкнув по кнопке очистки в текстовом поле. Дополнительные сведения см. в статье о проблеме GitHub #7703.
  • Исправлена ошибка, из-за которой не отображалась подсказка для кнопки «Свернуть» в заголовке при использовании ExtendsContentIntoTitleBar=true. Дополнительные сведения см. в статье о проблеме GitHub #9149.

Этот выпуск включает следующие новые API:

Новое свойство IsPlaceholderContent на WidgetInfo и WidgetUpdateRequestOptions позволяет поставщику мини-приложений указывать, что он будет отображать содержимое заполнителя в случае рендеринга. Например, мини-приложение, показывающее погоду, должно задать значение IsPlaceholderContent значение true, если пользователь еще не указал расположение погоды, и мини-приложение просто отображает информацию о погоде для расположения по умолчанию, например Сиэтла. Если мини-приложение помечается как заполнитель, некоторые хосты могут решить скрыть мини-приложение или определить приоритет других мини-приложений.

Microsoft.Windows.Widgets.Providers

    WidgetInfo
        IsPlaceholderContent

    WidgetUpdateRequestOptions
        IsPlaceholderContent

Версия 1.6.5 (1.6.250205002)

Исправления ошибок. Исправлено несколько проблем с утечкой памяти.

Версия 1.6.4 (1.6.250108002)

Исправления ошибок. Исправлена проблема с выделением текста в многострочного текстового поля. Дополнительные сведения см. в статье о проблеме GitHub [#9965](https://github.com/microsoft/microsoft-ui-xaml/issues/9965). — Исправлена проблема, из-за которой пакет DDLM иногда не устанавливался, предотвращая запуск распакованных приложений. Дополнительные сведения см. в статье о проблеме GitHub [#3855](https://github.com/microsoft/WindowsAppSDK/issues/3855). — Исправлен потенциальный сбой в Detours в некоторых сценариях. Дополнительные сведения см. в статье о проблеме с GitHub [#4937](https://github.com/microsoft/WindowsAppSDK/pull/4937). — Исправлена другая потенциальная проблема, из-за которой меню из CommandBar может неправильно открываться вверх, вместо того чтобы открываться вниз, когда CommandBar находится в нижней части окна. — Исправлен потенциальный сбой при запуске на более старом графическом оборудовании. — Исправлена потенциальная ошибка при обработке событий указателя при закрытии окна. — Исправлен потенциальный сбой, вызванный CUIAWindow::InitIds, иногда провоцирующий повторный вход. — Исправлен потенциальный сбой при использовании события CompositionCapabilities.Changed. — Исправлена проблема с некоторыми символами Юникода, отображающимися как квадраты в TextBox/RichEditBox. — Исправлена обработка в `PackageDeploymentManager.EnsurePackage*Async()` для `options.RegisterNewerIfAvailable`. Дополнительные сведения см. в статье о проблеме GitHub [#4864](https://github.com/microsoft/WindowsAppSDK/issues/4864).

Версия 1.6.3 (1.6.241114003)

Исправления ошибок Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.6. — Исправлена проблема, из-за которой включалась отрисовка пользовательской панели заголовков при чтении свойства AppWindow.ExtendsContentIntoTitleBar. Дополнительные сведения см. в статье о проблеме GitHub [#9988](https://github.com/microsoft/microsoft-ui-xaml/issues/9988). — Исправлен потенциальный сбой при разрушении `TextBox`/`RichEditBox`. Дополнительные сведения см. в статье о проблеме GitHub [#9070](https://github.com/microsoft/microsoft-ui-xaml/issues/9070). — Исправлена проблема, из-за которой `PackageDeploymentManager.IsPackageReadyOrNewerAvailable()` не работала. Дополнительные сведения см. в статье о проблеме GitHub [#4817](https://github.com/microsoft/WindowsAppSDK/issues/4817). — Исправлена проблема, из-за которой происходила утечка ScrollViewer. — Добавлено обнаружение для редкого сценария, когда приложение останавливает отрисовку и никогда не восстанавливается. — Исправлена проблема, из-за которой `PackageDeploymentManager.RegisterPackageSetAsync()` требует URI, хотя он должен быть необязательным для регистрации с помощью PackageFamilyName. — Исправлена проблема, из-за которой не удалось установить или удалить приложения. Дополнительные сведения см. в статье о проблеме GitHub [#4881](https://github.com/microsoft/WindowsAppSDK/issues/4881).

Этот выпуск включает следующие новые API, которые позволяют поставщикам мини-приложений включать веб-содержимое в свои мини-приложения:

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

  WidgetMessageReceivedArgs 
  WidgetResourceRequest 
  WidgetResourceRequestedArgs 
  WidgetResourceResponse 

Версия 1.6.1 (1.6.240923002)

Исправления
  • Исправлен сбой при использовании FocusVisualKind.Reveal(). Дополнительные сведения см. в статье о проблеме GitHub #9966.
  • Исправлены шумные исключения C++ из Bcp47Langs.dll. Дополнительные сведения см. в статье о проблеме GitHub #4691. Обратите внимание, что это исправление удаляет синхронизацию с Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride.
  • Исправлена проблема, из-за которой событие Unloaded было создано сразу после показа ContentDialog. Дополнительные сведения см. в статье о проблеме GitHub #8402.
  • Исправлена проблема, из-за которой меню CommandBar, возможно, неправильно открывалось вверх, даже если место позволяло открыть его вниз.
  • Исправлены некоторые проблемы, при которых входные данные в InputNonClientPointerSource регионы не обрабатывались правильно, когда окно верхнего уровня выполнялось в режиме справа налево.
  • Исправлена проверка на этапе компиляции для версии фреймворка Windows SDK, чтобы обеспечить обработку слегка изменённого имени фреймворка, используемого для .NET 9.

Версия 1.6

Изменения проекта C++

При обновлении проекта C++ до версии 1.6 необходимо добавить ссылку на проект в Microsoft.Web.WebView2 пакет. Если вы обновляете пакеты через диспетчер NuGet в Visual Studio, эта зависимость будет добавлена автоматически.

Изменения проекта C#

В 1.6 управляемые приложения пакета SDK для приложений Windows требуют microsoft.Windows.SDK.NET.Ref*.*.*.38 или более поздней версии, которые можно указать с помощью WindowsSdkPackageVersion в файле csproj . Рассмотрим пример.

<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>
   ...

Кроме того, управляемые приложения пакета SDK для Приложений Windows должны обновляться до Microsoft.Windows.CsWinRT2.1.1 (или более поздней версии).

Замечание

Эти ручные ссылки больше не потребуются после выпуска следующего обновления SDK .NET.

Нативная поддержка AOT

Нативная поддержка AOT в версии 1.6

Свойство проекта .NET PublishAot теперь поддерживается для собственной компиляции на этапе разработки. Дополнительные сведения о нативном AOT см. в разделе "Нативное развертывание AOT". Из-за того, что AOT основывается на поддержке обрезки, большая часть следующих рекомендаций по обрезке также применяется к AOT.

Для PublishAot поддержки и настройки функциональности обрезки, в дополнение к изменениям проекта C#, описанным в предыдущем разделе, вам также потребуется ссылка на Microsoft.Windows.CsWinRT2.1.1 (или более поздней версии), чтобы включить генератор исходного кода из этого пакета, пока не будет выпущено следующее обновление SDK для .NET, после чего это больше не потребуется.

Дополнительные сведения см. в документации по поддержке CsWinRT Trimming / AOT и заметках о выпуске CsWinRT 2.1.1.

Так как пакет SDK для приложений Windows вызывает целевые объекты публикации при развертывании F5, рекомендуется включить PublishAot во время восстановления NuGet, добавив его в csproj файл:

<PublishAot>true</PublishAot>
Устранение проблем AOT

В этом выпуске разработчик отвечает за правильную корневую привязку всех типов, чтобы избежать исключения (например, с целями, основанными на отражении {Binding}). Более поздние выпуски расширят возможности C#/WinRT и компилятора XAML, чтобы автоматизировать корневую обработку, где это возможно, оповещать разработчиков о рисках, связанных с обрезкой, и предоставят механизмы для разрешения.

Частичные классы

C#/WinRT в версии 2.1.1 также включает PublishAot поддержку. Чтобы включить класс для публикации AOT с помощью C#/WinRT, сначала его необходимо пометить partial. Это позволяет исходному анализатору C#/WinRT AOT атрибутировать классы для статического анализа. Только классы (содержащие методы, которые являются целями для обрезки) требуют этот атрибут.

Небезопасная ошибка кода

Генератор источника CsWinRT может создать код, который использует unsafe. Если вы столкнулись с такой ошибкой во время компиляции или с диагностическим предупреждением (CS0227 для "Небезопасный код может отображаться только в том случае, если компиляция выполняется с использованием /unsafe"), вы должны установить для EnableUnsafeBlocks значение true. Дополнительные сведения см. в статье GitHub о проблеме CsWinRT #1721.

WebView2 еще не совместим с AOT

Проекции WebView2 в Microsoft.Web.WebView2 пакете версии 1.0.2651.64 еще не совместимы с AOT. Это будет исправлено в предстоящем выпуске пакета Microsoft.Web.WebView2, на который вы затем сможете ссылаться в своем проекте.

Методы, исключающие отражения

Чтобы обеспечить совместимость с AOT, методы на основе отражения следует заменить статически типизированной сериализацией, AppContext.BaseDirectory, typeof() и т. д. Для получения подробной информации см. "Введение в предупреждения о тримминге".

Типы укоренения

Пока не будет реализована полная поддержка, типы могут быть убережены от обрезки следующим образом: {Binding}

Учитывая проект P, использующий сборку A с типом T в пространстве имен N, которое ссылается только динамически (поэтому обычно сокращается), T можно сохранить с помощью:

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>

Полный синтаксис xml-выражений корневого дескриптора см. в разделе "Корневые дескрипторы".

Замечание

Пакеты зависимостей, которые еще не внедрили поддержку AOT, могут столкнуться с проблемами во время выполнения.

Разъединённое управление версиями WebView2

Windows App SDK теперь использует Edge WebView2 SDK в виде ссылки NuGet вместо жестко закодированной версии этого SDK. Новая модель позволяет приложениям выбирать более новую версию Microsoft.Web.WebView2 пакета, а не ограничиваться версией, с помощью которой был создан пакет SDK для Windows. Новая модель также позволяет приложениям ссылаться на пакеты NuGet, которые также ссылались на пакет SDK Edge WebView2. Дополнительные сведения см. в статье о проблеме GitHub #5689.

Новые API развертывания пакетов

API управления пакетами получил несколько улучшений, включая Is*ReadyOrNewerAvailable*(), EnsureReadyOptions.RegisterNewerIfAvailable, Is*Provisioned*(), IsPackageRegistrationPending() и несколько исправлений ошибок. Подробнее смотрите в PackageManagement.md и Pull Request #4453.

Улучшенный разрыв вкладки TabView

Улучшенное отсоединение TabView в версии 1.6

TabView поддерживает новый CanTearOutTabs режим, который предоставляет расширенный интерфейс для перетаскивания вкладок и перетаскивания в новое окно. Если этот новый параметр включен, перетаскивание вкладок очень похоже на режим перетаскивания вкладок в Edge и Chrome, где новое окно сразу же создается во время перетаскивания, что позволяет пользователю перетаскивать его на край экрана, чтобы развернуть или привязать окно в одном плавном движении. Эта реализация также не использует API перетаскивания, поэтому это не влияет на какие-либо ограничения в этих API. В частности, возможность отрыва вкладок поддерживается в процессах, работающих с повышенными привилегиями администратора.

Другие заметные изменения
  • Добавлен новый ColorHelper.ToDisplayName() API, заполнивший этот пробел в UWP.
  • Добавлен новый Microsoft.Windows.Globalization.ApplicationLanguages класс, который содержит новую функцию PrimaryLanguageOverride. Дополнительные сведения см. в статье о проблеме GitHub #4523.
  • Распечатанный ItemsWrapGrid. Это должно быть обратно совместимое изменение.
  • PipsPager поддерживает новый режим, в котором он может переключаться между первым и последним элементами.

Новый режим упаковки PipsPager в версии 1.6

  • RatingControl теперь является более настраиваемым, переместив некоторые жестко закодированные свойства стиля в ресурсы темы. Это позволяет приложениям переопределить эти значения, чтобы лучше настроить внешний вид RatingControl.
Новая настройка RatingControl в версии 1.6
  • WinUI 3 перешел на типографическую модель для выбора шрифта, вместо устаревшей модели веса, растяжения и стиля. Типографическая модель требуется для некоторых новых шрифтов, включая переменную пользовательского интерфейса Segoe, и обеспечивает расширенные возможности шрифтов. Некоторые старые шрифты, зависящие от модели выбора, основанной на весе, растяжении и стиле, могут не обнаруживаться с помощью типографической модели.
Известные проблемы
  • Если отладчик настроен останавливать выполнение при возникновении всех исключений C++, он будет останавливать выполнение при запуске на некоторых шумных исключениях в коде, связанном с BCP47 (глобализация Windows). Дополнительные сведения см. в статье о проблеме GitHub #4691.
  • Пакеты библиотеки компонентов, ссылающиеся на пакет SDK для приложений Windows 1.6, не будут правильно получать содержимое пакета WebView2. Дополнительные сведения см. в разделе WebView2Feedback #4743. Обходной путь — добавить прямую ссылку на Microsoft.Web.WebView2 пакет, где это необходимо.
  • Приложения, скомпилированные с помощью Native AOT, иногда могут столкнуться с зависанием после навигации по страницам из-за состояния гонки в потоке GC среды выполнения .NET. Дополнительные сведения см. в статье о проблеме .NET #104582.
  • Первоначальный выпуск версии 1.6.0 представил проблему с одной из наших зависимостей, которую мы ожидаем, будет решена в предстоящем выпуске пакета SDK для .NET. Если возникла ошибка с версией Microsoft.Windows.SDK.NET ссылки, необходимо явно ссылаться на версию пакета SDK для .NET, указанную сообщением об ошибке. Например, если ошибка говорит, что вам нужна версия 10.0.19041.38, добавьте в файл следующую команду .csproj :
    • <WindowsSdkPackageVersion>10.0.19041.38</WindowsSdkPackageVersion>.
Исправления ошибок
  • Исправлен сбой при задании InfoBar.IsOpen в XAML. Дополнительные сведения см. в статье о проблеме GitHub #8391.
  • Исправлена проблема, из-за которой элементы HTML потеряют запись указателя при перемещении мыши за пределы WebView2 границ. Дополнительные сведения см. в статье о проблеме GitHub #8677.
  • Исправлена проблема, из-за которой перетаскивание и отпускание внутрь всплывающего меню ShouldConstrainToRootBounds=false не работало. Дополнительные сведения см. в статье GitHub о проблеме 9276.
  • Исправлена проблема, из-за которой ссылки ms-appx:// не работали при включении PublishSingleFile. Дополнительные сведения см. в статье о проблеме GitHub #9468.
  • Исправлена проблема, из-за которой символы отладчика не работали правильно для некоторых двоичных файлов. Дополнительные сведения см. в статье о проблеме GitHub #4633.
  • Исправлен потенциальный крах при создании подкласса NavigationView.
  • Исправлена проблема, из-за которой границы таблицы в RichEditBox не стирались должным образом при прокрутке или уменьшении размера таблицы.
  • Исправлена проблема, из-за которой всплывающие элементы из MediaTransportControls имели полностью прозрачный фон.
  • Исправлена проблема, при которой перетаскивание в WebView2 либо завершалось неудачно, либо происходило в неправильном месте при использовании коэффициентов масштабирования экрана, отличных от 100 %, или когда включено масштабирование системного текста.
  • Исправлена проблема, из-за которой средства специальных возможностей не объявляли, когда входные данные были заблокированы из-за ограничения TextBox.
  • Исправлены некоторые проблемы, связанные с обработкой сценариев пользовательской панели заголовков. Дополнительные сведения см. в статье о проблемах GitHub #7629, #9670, #9709 и #8431.
  • Исправлена проблема, из-за которой InfoBadge значок не был видимым. Дополнительные сведения см. в статье о проблеме GitHub #8176.
  • Исправлена проблема со значками, которые иногда отображаются в неправильной позиции CommandBarFlyout. Дополнительные сведения см. в статье о проблеме GitHub #9409.
  • Исправлена проблема с фокусом клавиатуры в меню при открытии или закрытии подменю. Дополнительные сведения см. в статье о проблеме GitHub #9519.
  • Исправлена проблема с TreeView использованием неправильного IsExpanded состояния при переработке элементов. Дополнительные сведения см. в статье о проблеме GitHub #9549.
  • Исправлена проблема при использовании привязки ElementName в объекте ItemsRepeater.ItemTemplate. Дополнительные сведения см. в статье о проблеме GitHub #9715.
  • Исправлена проблема с первым элементом в ItemsRepeater, который иногда находился в неправильной позиции. Дополнительные сведения см. в статье о проблеме GitHub #9743.
  • Исправлена проблема с InputNonClientPointerSource, иногда нарушающим работу кнопок min/max/close. Дополнительные сведения см. в статье о проблеме GitHub #9749.
  • Исправлена ошибка компиляции при использовании Microsoft.UI.Interop.h с clang-cl. Дополнительные сведения см. в статье о проблеме GitHub #9771.
  • Исправлена проблема, из-за которой событие CharacterReceived не работало в ComboBox/TextBox. Дополнительные сведения см. в статье о проблеме GitHub #9786.
  • Исправлена проблема, из-за которой повторяющиеся KeyUp события вызывались для клавиш со стрелками и клавиши Tab. Дополнительные сведения см. в статье о проблеме GitHub #9399.
  • Исправлена проблема, из-за которой событие PowerManager.SystemSuspendStatusChanged было невозможно использовать для получения SystemSuspendStatus. Дополнительные сведения см. в статье о проблеме GitHub #2833.
  • Исправлена проблема, из-за которой начальный фокус клавиатуры не был правильно задан WebView2 , когда это был единственный элемент управления в окне.
  • Исправлена проблема, из-за которой при использовании ExtendsContentIntoTitleBar=true кнопки свернуть / развернуть / закрыть неправильно отображались в автоматизации пользовательского интерфейса, что препятствовало корректному отображению номеров в голосовом доступе для этих кнопок.
  • Исправлена проблема, из-за которой приложение могло завершиться сбоем при проверке блокировки из-за неожиданного повторного входа.
  • Исправлена проблема, из-за которой Hyperlink цвета неправильно обновлялись при переключении в тему высокой контрастности.
  • Исправлена проблема, из-за которой изменение коллекции ListView в фоновом окне может неправильно перемещать это окно на передний план и фокусировать на нем внимание.
  • Исправлена проблема, из-за которой вызов ItemsRepeater.StartBringIntoView иногда может привести к исчезновению элементов.
  • Исправлена проблема, из-за которой касание и перетаскивание на Button в ScrollViewer оставляло бы его в состоянии нажатия.
  • Обновился IntelliSense для предоставления информации о многих новых типах и членах, которую раньше не было.
  • Исправлена проблема, из-за которой щелчок в пустой области ScrollViewer всегда перемещает фокус к первому фокусируемому элементу управления в ScrollViewer и прокручивает этот элемент в поле зрения. Дополнительные сведения см. в статье о проблеме GitHub #597.
  • Исправлена проблема, когда событие Window.Activated иногда запускалось несколько раз. Дополнительные сведения см. в статье о проблеме GitHub #7343.
  • Исправлена проблема, из-за которой установка свойства NavigationViewItem.IsSelected в значение true не позволяла отображать дочерние элементы при развертывании. Дополнительные сведения см. в статье о проблеме GitHub #7930.
  • Исправлена проблема, из-за которой MediaPlayerElement неправильно отображались подписи с эффектами края None или DropShadow. Дополнительные сведения см. в статье о проблеме GitHub #7981.
  • Исправлена проблема, из-за которой Flyout.ShowMode свойство не использовалось при отображении всплывающего элемента. Дополнительные сведения см. в статье о проблеме GitHub #7987.
  • Исправлена проблема, из-за которой NumberBox иногда возникают ошибки округления. Дополнительные сведения см. в статье о проблеме GitHub #8780.
  • Исправлена проблема, из-за которой использование библиотеки, скомпилированной против более старой версии Windows App SDK, могло привести к ошибке при попытке найти тип или свойство. Дополнительные сведения см. в статье о проблеме GitHub #8810.
  • Исправлена проблема, из-за которой при запуске окна начальная фокуса клавиатуры не была задана. Дополнительные сведения см. в статье о проблеме GitHub #8816.
  • Исправлена проблема, из-за которой FlyoutShowMode.TransientWithDismissOnPointerMoveAway не работала после первого отображения. Дополнительные сведения см. в статье о проблеме GitHub #8896.
  • Исправлена проблема, из-за которой некоторые элементы управления неправильно связывались с шаблоном и свойствами Foreground и Background. Дополнительные сведения см. в статье о проблеме GitHub #7070, #9020, #9029, #9083 и #9102.
  • Исправлена проблема, из-за которой используемые в ThemeResource модулях VisualStateManager не обновлялись при изменении темы. Часто затрагиваемые элементы управления в всплывающих окнах. Дополнительные сведения см. в статье о проблеме GitHub #9198.
  • Исправлена проблема, из-за которой WebView теряет основной фокус, что приводит к дополнительным событиям потери и восстановления фокуса, а также другим проблемам. Дополнительные сведения см. в статье о проблеме GitHub #9288.
  • Исправлена проблема, из-за которой NavigationView в выходных данных отладки может отображаться ошибка привязки. Дополнительные сведения см. в статье о проблеме GitHub #9384.
  • Исправлена проблема, из-за которой файлы SVG, определяющие отрицательное поле просмотра, больше не отображались. Дополнительные сведения см. в статье о проблеме GitHub #9415.
  • Исправлена проблема, из-за которой изменение ItemsView.Layout ориентации привело к удалению элемента. Дополнительные сведения см. в статье о проблеме GitHub #9422.
  • Исправлена проблема, из-за которой при прокрутке ScrollView генерировалось большое количество выходных данных отладки. Дополнительные сведения см. в статье о проблеме GitHub #9434.
  • Исправлена проблема, из-за которой MapContorl.InteractiveControlsVisible не работали должным образом. Дополнительные сведения см. в статье о проблеме GitHub #9486.
  • Исправлена проблема, из-за которой событие MapControl.MapElementClick не срабатывало должным образом. Дополнительные сведения см. в статье о проблеме GitHub #9487.
  • Исправлена проблема, из-за которой x:Bind не проверял значение NULL перед использованием слабой ссылки, что может привести к сбою. Дополнительные сведения см. в статье о проблеме GitHub #9551.
  • Исправлена проблема, из-за которой изменение свойства TeachingTip.Target не корректно обновляло его положение. Дополнительные сведения см. в статье о проблеме GitHub #9553.
  • Исправлена проблема, из-за которой раскрывающиеся списки не реагировали в WebView2. Дополнительные сведения см. в статье о проблеме GitHub #9566.
  • Исправлена утечка памяти при использовании GeometryGroup. Дополнительные сведения см. в статье о проблеме GitHub #9578.
  • Исправлена проблема, из-за которой прокрутка очень большого количества элементов из ItemRepeater в ScrollView могла приводить к появлению пустых кадров отрисовки. Дополнительные сведения см. в статье о проблеме GitHub #9643.
  • Исправлена проблема, из-за которой SceneVisual не работало.
Новые API

Версия 1.6.0 включает следующие новые API по сравнению с стабильным выпуском 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

Версия 1.6(предварительная версия 2) (1.6.0-preview2)

Это последний выпуск канала предварительной версии для версии 1.6.

В существующем приложении Windows App SDK 1.5 (из стабильного канала) можно обновить пакет NuGet до версии 1.6.0-preview2 (см. раздел Обновление пакета в Установка и управление пакетами в Visual Studio с использованием диспетчера пакетов NuGet).

Сведения об обновленной среде выполнения и MSIX см. в разделе "Загрузки" для пакета SDK для приложений Windows.

Поддержка собственного AOT

1.6-preview2 включает существенные изменения для обновления до выпущенной версии Microsoft.Windows.CsWinRT 2.1.1 и улучшения надежности сборки для собственной компиляции в режиме Ahead-Of-Time.

Обновлена интеграция пакета SDK Для Edge WebView2

Этот выпуск теперь ссылается на выпущенную версию пакета 1.0.2651.64, которая должна устранять проблемы с предварительной версией Microsoft.Web.WebView2 , на которую ссылается версия 1.6-preview1. Как отмечалось в версии 1.6-preview1, приложения теперь смогут выбрать более новую версию Microsoft.Web.WebView2 пакета при желании.

Исправления ошибок

1.6-preview2 содержит следующие новые исправления после выпуска 1.6-preview1:

  • Исправлен сбой при задании InfoBar.IsOpen в XAML. Дополнительные сведения см. в статье о проблеме GitHub #8391.
  • Исправлена проблема, из-за которой элементы HTML потеряют запись указателя при перемещении мыши за пределы WebView2 границ. Дополнительные сведения см. в статье о проблеме GitHub #8677.
  • Исправлена проблема, из-за которой перетаскивание и отпускание внутрь всплывающего меню ShouldConstrainToRootBounds=false не работало. Дополнительные сведения см. в статье GitHub о проблеме 9276.
  • Исправлена проблема, из-за которой ссылки ms-appx:// не работали при включении PublishSingleFile. Дополнительные сведения см. в статье о проблеме GitHub #9468.
  • Исправлена проблема, из-за которой символы отладчика не работали правильно для некоторых двоичных файлов. Дополнительные сведения см. в статье о проблеме GitHub #4633.
  • Исправлена ошибка сборки при использовании /permissive-. Дополнительные сведения см. в статье о проблеме GitHub #4643.
  • Исправлена пара критических изменений API в версии 1.6-preview1, вызванная переименованными параметрами. Дополнительные сведения см. в статье о проблеме GitHub #4645.
  • Исправлены ошибки сборки из-за конфликтов типов, затрагивавшие некоторые проекты, особенно для типов Windows.UI.Text, в версии 1.6-preview1.
  • Исправлена проблема с поиском ресурсов по библиотекам элементов управления в версии 1.6-preview1. Дополнительные сведения см. в статье о проблеме GitHub #4649.
  • Исправлен потенциальный крах при создании подкласса NavigationView.
  • Исправлена проблема, из-за которой границы таблицы в RichEditBox не стирались должным образом при прокрутке или уменьшении размера таблицы.
  • Исправлена проблема, из-за которой всплывающие элементы из MediaTransportControls имели полностью прозрачный фон.
  • Исправлена проблема, при которой перетаскивание в WebView2 либо завершалось неудачно, либо происходило в неправильном месте при использовании коэффициентов масштабирования экрана, отличных от 100 %, или когда включено масштабирование системного текста.
  • Исправлена проблема, из-за которой средства специальных возможностей не объявляли, когда входные данные были заблокированы из-за ограничения TextBox.

Версия 1.6(предварительная версия 1) (1.6.0-preview1)

Замечание

Новый элемент управления TitleBar, выпущенный в версии 1.6-experimental1, еще не доступен в не экспериментальных сборках версии 1.6, чтобы позволить больше времени оценивать и реагировать на отзывы сообщества. Мы получили множество отличных отзывов здесь и хотим убедиться, что мы уделяем время, необходимое для их рассмотрения.

Обязательные изменения проекта C# для версии 1.6-preview1

В версии 1.6-preview1 управляемые приложения Windows App SDK требуют Microsoft.Windows.SDK.NET.Ref, который можно указать с помощью *.*.*.38 в вашем файле . Рассмотрим пример.

<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>
   ...

Кроме того, управляемые приложения пакета SDK для Приложений Windows должны обновляться до Microsoft.Windows.CsWinRT2.1.1 (или более поздней версии).

Нативная поддержка AOT

Свойство проекта .NET PublishAot теперь поддерживается для собственной компиляции на этапе разработки. Дополнительные сведения о нативном AOT см. в разделе "Нативное развертывание AOT". Поскольку AOT основывается на поддержке Trimming, большая часть ранее описанных рекомендаций, связанных с Trimming в выпуске версии 1.6-experimental1, также применяется. См. поддержку Native AOT для получения дополнительной информации.

Как отмечалось выше, проекты C# должны иметь ссылку на пакет Microsoft.Windows.CsWinRT 2.1.1 (или более поздней версии). Эта версия включает в себя безопасную ICustomPropertyProvider реализацию AOT. Типы, используемые с этой поддержкой, должны быть помечены атрибутом WinRT.GeneratedBindableCustomProperty и сделаны partial.

Измененная интеграция с пакетом SDK для Edge WebView2

Windows App SDK теперь использует Edge WebView2 SDK в виде ссылки NuGet вместо жестко закодированной версии этого SDK. Новая модель позволяет приложениям выбирать более новую версию Microsoft.Web.WebView2 пакета, а не ограничиваться версией, с помощью которой был создан пакет SDK для Windows. Новая модель также позволяет приложениям ссылаться на пакеты NuGet, которые также ссылались на пакет SDK Edge WebView2. Дополнительные сведения см. в статье о проблеме GitHub #5689.

Новые API развертывания пакетов

API управления пакетами получил несколько улучшений, включая Is*ReadyOrNewerAvailable*(), EnsureReadyOptions.RegisterNewerIfAvailable, Is*Provisioned*(), IsPackageRegistrationPending() и несколько исправлений ошибок. Подробнее смотрите в PackageManagement.md и Pull Request #4453.

Улучшенный разрыв вкладки TabView

TabView поддерживает новый CanTearOutTabs режим, который предоставляет расширенный интерфейс для перетаскивания вкладок и перетаскивания в новое окно. Если этот новый параметр включен, перетаскивание вкладок очень похоже на режим перетаскивания вкладок в Edge и Chrome, где новое окно сразу же создается во время перетаскивания, что позволяет пользователю перетаскивать его на край экрана, чтобы развернуть или привязать окно в одном плавном движении. Эта реализация также не использует API перетаскивания, поэтому это не влияет на какие-либо ограничения в этих API. В частности, возможность отрыва вкладок поддерживается в процессах, работающих с повышенными привилегиями администратора.

Другие заметные изменения
  • Мы добавили новый ColorHelper.ToDisplayName() API, заполнив этот разрыв от UWP.
  • Добавлен новый Microsoft.Windows.Globalization.ApplicationLanguages класс, который содержит новую функцию PrimaryLanguageOverride. Дополнительные сведения см. в статье о проблеме GitHub #4523.
  • Распечатанный ItemsWrapGrid. Это должно быть обратно совместимое изменение.
  • PipsPager поддерживает новый режим, в котором он может обертывать между первым элементом и элементами списка.
  • RatingControl теперь является более настраиваемым, переместив некоторые жестко закодированные свойства стиля в ресурсы темы. Это позволяет приложениям переопределить эти значения, чтобы лучше настроить внешний вид RatingControl.
Известные проблемы
  • Если отладчик настроен на разрыв для всех исключений C++, он разорвит пару шумных исключений при запуске в коде BCP47 (глобализация Windows).
Исправления ошибок
  • Исправлены некоторые проблемы, связанные с обработкой сценариев пользовательской панели заголовков. Дополнительные сведения см. в статье о проблемах GitHub #7629, #9670, #9709 и #8431.
  • Исправлена проблема, из-за которой InfoBadge значок не был видимым. Дополнительные сведения см. в статье о проблеме GitHub #8176.
  • Исправлена проблема со значками, которые иногда отображаются в неправильной позиции CommandBarFlyout. Дополнительные сведения см. в статье о проблеме GitHub #9409.
  • Исправлена проблема с фокусом клавиатуры в меню при открытии или закрытии подменю. Дополнительные сведения см. в статье о проблеме GitHub #9519.
  • Исправлена проблема с TreeView использованием неправильного IsExpanded состояния при переработке элементов. Дополнительные сведения см. в статье о проблеме GitHub #9549.
  • Исправлена проблема при использовании привязки ElementName в объекте ItemsRepeater.ItemTemplate. Дополнительные сведения см. в статье о проблеме GitHub #9715.
  • Исправлена проблема с первым элементом в ItemsRepeater, который иногда находился в неправильной позиции. Дополнительные сведения см. в статье о проблеме GitHub #9743.
  • Исправлена проблема с InputNonClientPointerSource, иногда нарушающим работу кнопок min/max/close. Дополнительные сведения см. в статье о проблеме GitHub #9749.
  • Исправлена ошибка компиляции при использовании Microsoft.UI.Interop.h с clang-cl. Дополнительные сведения см. в статье о проблеме GitHub #9771.
  • Исправлена проблема, из-за которой событие CharacterReceived не работало в ComboBox/TextBox. Дополнительные сведения см. в статье о проблеме GitHub #9786.
  • Исправлена проблема в экспериментальных сборках версии 1.6, где поведение ввода указателя CanTearOutTabs было некорректным для мониторов с масштабом, отличным от 100%. Дополнительные сведения см. в статье о проблеме GitHub #9791.
  • Исправлена проблема в экспериментальной сборке 1.6-2, в которой некоторые языковые переводы имели проблемы с кодированием символов ColorHelper.ToDisplayName().
  • Исправлена проблема в 1.6-экспериментальной1, где NumberBox не использовал правильные передний и фоновые цвета. Дополнительные сведения см. в статье о проблеме GitHub #9714.
  • Исправлена проблема, из-за которой повторяющиеся KeyUp события вызывались для клавиш со стрелками и клавиши Tab. Дополнительные сведения см. в статье о проблеме GitHub #9399.
  • Исправлена проблема, из-за которой событие PowerManager.SystemSuspendStatusChanged было невозможно использовать для получения SystemSuspendStatus. Дополнительные сведения см. в статье о проблеме GitHub #2833.
  • Исправлена проблема, из-за которой начальный фокус клавиатуры не был правильно задан WebView2 , когда это был единственный элемент управления в окне.
  • Исправлена проблема, из-за которой при использовании ExtendsContentIntoTitleBar=true кнопки свернуть / развернуть / закрыть неправильно отображались в автоматизации пользовательского интерфейса, что препятствовало корректному отображению номеров в голосовом доступе для этих кнопок.
  • Исправлена проблема, из-за которой приложение могло завершиться сбоем при проверке блокировки из-за неожиданного повторного входа.
  • Исправлена проблема, из-за которой Hyperlink цвета неправильно обновлялись при переключении в тему высокой контрастности.
  • Исправлена проблема, из-за которой изменение коллекции ListView в фоновом окне может неправильно перемещать это окно на передний план и фокусировать на нем внимание.
  • Исправлена проблема из 1.6-экспериментальной версии, из-за которой установка AcrylicBrush.TintLuminosityOpacity в .xaml в проекте библиотеки классов приводила к сбою с ошибкой преобразования типов.
  • Исправлена проблема, из-за которой вызов ItemsRepeater.StartBringIntoView иногда может привести к исчезновению элементов.
  • Исправлена проблема, из-за которой касание и перетаскивание на Button в ScrollViewer оставляло бы его в состоянии нажатия.
  • Обновился IntelliSense для предоставления информации о многих новых типах и членах, которую раньше не было.
  • Исправлена проблема, из-за которой щелчок в пустой области ScrollViewer всегда перемещает фокус к первому фокусируемому элементу управления в ScrollViewer и прокручивает этот элемент в поле зрения. Дополнительные сведения см. в статье о проблеме GitHub #597.
  • Исправлена проблема, когда событие Window.Activated иногда запускалось несколько раз. Дополнительные сведения см. в статье о проблеме GitHub #7343.
  • Исправлена проблема, из-за которой установка свойства NavigationViewItem.IsSelected в значение true не позволяла отображать дочерние элементы при развертывании. Дополнительные сведения см. в статье о проблеме GitHub #7930.
  • Исправлена проблема, из-за которой MediaPlayerElement неправильно отображались подписи с эффектами края None или DropShadow. Дополнительные сведения см. в статье о проблеме GitHub #7981.
  • Исправлена проблема, из-за которой Flyout.ShowMode свойство не использовалось при отображении всплывающего элемента. Дополнительные сведения см. в статье о проблеме GitHub #7987.
  • Исправлена проблема, из-за которой NumberBox иногда возникают ошибки округления. Дополнительные сведения см. в статье о проблеме GitHub #8780.
  • Исправлена проблема, из-за которой использование библиотеки, скомпилированной против более старой версии Windows App SDK, могло привести к ошибке при попытке найти тип или свойство. Дополнительные сведения см. в статье о проблеме GitHub #8810.
  • Исправлена проблема, из-за которой при запуске окна начальная фокуса клавиатуры не была задана. Дополнительные сведения см. в статье о проблеме GitHub #8816.
  • Исправлена проблема, из-за которой FlyoutShowMode.TransientWithDismissOnPointerMoveAway не работала после первого отображения. Дополнительные сведения см. в статье о проблеме GitHub #8896.
  • Исправлена проблема, из-за которой некоторые элементы управления неправильно связывались с шаблоном и свойствами Foreground и Background. Дополнительные сведения см. в статье о проблеме GitHub #7070, #9020, #9029, #9083 и #9102.
  • Исправлена проблема, из-за которой используемые в ThemeResource модулях VisualStateManager не обновлялись при изменении темы. Часто затрагиваемые элементы управления в всплывающих окнах. Дополнительные сведения см. в статье о проблеме GitHub #9198.
  • Исправлена проблема, из-за которой WebView теряет основной фокус, что приводит к дополнительным событиям потери и восстановления фокуса, а также другим проблемам. Дополнительные сведения см. в статье о проблеме GitHub #9288.
  • Исправлена проблема, из-за которой NavigationView в выходных данных отладки может отображаться ошибка привязки. Дополнительные сведения см. в статье о проблеме GitHub #9384.
  • Исправлена проблема, из-за которой файлы SVG, определяющие отрицательное поле просмотра, больше не отображались. Дополнительные сведения см. в статье о проблеме GitHub #9415.
  • Исправлена проблема, из-за которой изменение ItemsView.Layout ориентации привело к удалению элемента. Дополнительные сведения см. в статье о проблеме GitHub #9422.
  • Исправлена проблема, из-за которой при прокрутке ScrollView генерировалось большое количество выходных данных отладки. Дополнительные сведения см. в статье о проблеме GitHub #9434.
  • Исправлена проблема, из-за которой MapContorl.InteractiveControlsVisible не работали должным образом. Дополнительные сведения см. в статье о проблеме GitHub #9486.
  • Исправлена проблема, из-за которой событие MapControl.MapElementClick не срабатывало должным образом. Дополнительные сведения см. в статье о проблеме GitHub #9487.
  • Исправлена проблема, из-за которой x:Bind не проверял значение NULL перед использованием слабой ссылки, что может привести к сбою. Дополнительные сведения см. в статье о проблеме GitHub #9551.
  • Исправлена проблема, из-за которой изменение свойства TeachingTip.Target не корректно обновляло его положение. Дополнительные сведения см. в статье о проблеме GitHub #9553.
  • Исправлена проблема, из-за которой раскрывающиеся списки не реагировали в WebView2. Дополнительные сведения см. в статье о проблеме GitHub #9566.
  • Исправлена утечка памяти при использовании GeometryGroup. Дополнительные сведения см. в статье о проблеме GitHub #9578.
  • Исправлена проблема, из-за которой прокрутка очень большого количества элементов из ItemRepeater в ScrollView могла приводить к появлению пустых кадров отрисовки. Дополнительные сведения см. в статье о проблеме GitHub #9643.
  • Исправлена проблема, из-за которой SceneVisual не работало.
Новые API в версии 1.6.0-preview1

Версия 1.6-preview1 включает следующие новые API по сравнению с стабильным выпуском 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

Экспериментальная версия 1.6 (1.6.0-experimental2)

Замечание

API Phi Silica и OCR не включены в этот выпуск. Они будут поступать в будущем выпуске 1.6.

Обновления поддержки нативной AOT

В экспериментальной версии 1.6 компилятор XAML генерировал XamlTypeInfo.g.cs с кодом, который не был безопасен для AOT/Trimming. Это связано с проблемой GitHub #9675, хотя она не полностью исправляет эту проблему.

Измененная интеграция с пакетом SDK для Edge WebView2

Windows App SDK теперь использует Edge WebView2 SDK в виде ссылки NuGet вместо жестко закодированной версии этого SDK. Новая модель позволяет приложениям выбирать более новую версию Microsoft.Web.WebView2 пакета, а не ограничиваться версией, с помощью которой был создан пакет SDK для Windows. Новая модель также позволяет приложениям ссылаться на пакеты NuGet, которые также ссылались на пакет SDK Edge WebView2. Дополнительные сведения см. в статье о проблеме GitHub #5689.

Новые API развертывания пакетов

API управления пакетами получил несколько улучшений, включая Is*ReadyOrNewerAvailable*(), EnsureReadyOptions.RegisterNewerIfAvailable, Is*Provisioned*(), IsPackageRegistrationPending() и несколько исправлений ошибок. Подробнее смотрите в PackageManagement.md и Pull Request #4453.

Другие заметные изменения
  • Начиная с версии 1.6-экспериментальная2, последний исходный код WinUI 3 теперь будет публиковаться в основной ветви репозитория GitHub microsoft-ui-xaml, что позволит выполнять поиск по коду в этом репозитории.
  • Мы добавили новый ColorHelper.ToDisplayName() API, заполнив этот разрыв от UWP.
    • Известная проблема: некоторые переводы языка имеют проблемы с кодировкой символов. Это будет исправлено в следующем выпуске 1.6.
  • Добавлен новый Microsoft.Windows.Globalization.ApplicationLanguages класс, который содержит новую функцию PrimaryLanguageOverride. Дополнительные сведения см. в статье о проблеме GitHub #4523.
  • Новые расширения позволяют поставщикам мини-приложений предоставлять мини-приложения с веб-контентом и объявлениями для мини-приложений.
Новые API для версии 1.6-экспериментальный2

1.6-экспериментальный2 включает следующие новые API. Эти API не экспериментальны, но еще не включены в стабильную версию пакета SDK для приложений Windows.

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
Дополнительные экспериментальные API-интерфейсы 1.6-2

Этот выпуск включает следующие новые и измененные экспериментальные API:

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
Известные проблемы
  • При перемещении вкладки TabView поведение ввода указателя для CanTearOutTabs неверно на мониторах с коэффициентом масштабирования дисплея, отличающимся от 100 %. Это будет исправлено в следующем выпуске 1.6.
Исправления ошибок
  • Исправлена проблема в 1.6-экспериментальной1, где NumberBox не использовал правильные передний и фоновые цвета. Дополнительные сведения см. в статье о проблеме GitHub #9714.
  • Исправлена проблема, из-за которой повторяющиеся KeyUp события вызывались для клавиш со стрелками и клавиши Tab. Дополнительные сведения см. в статье о проблеме GitHub #9399.
  • Исправлена проблема, из-за которой событие PowerManager.SystemSuspendStatusChanged было невозможно использовать для получения SystemSuspendStatus. Дополнительные сведения см. в статье о проблеме GitHub #2833.
  • Исправлена проблема, из-за которой начальный фокус клавиатуры не был правильно задан WebView2 , когда это был единственный элемент управления в окне.
  • Исправлена проблема, из-за которой при использовании ExtendsContentIntoTitleBar=true кнопки свернуть / развернуть / закрыть неправильно отображались в автоматизации пользовательского интерфейса, что препятствовало корректному отображению номеров в голосовом доступе для этих кнопок.
  • Исправлена проблема, из-за которой приложение могло завершиться сбоем при проверке блокировки из-за неожиданного повторного входа.
  • Исправлена проблема в версии 1.6-experimental1, где TitleBar отображался только значок и заголовок, так как при загрузке некоторые элементы не появлялись.
  • Исправлена проблема, из-за которой Hyperlink цвета неправильно обновлялись при переключении в тему высокой контрастности.
  • Исправлена проблема, из-за которой изменение коллекции ListView в фоновом окне может неправильно перемещать это окно на передний план и фокусировать на нем внимание.
  • Исправлена проблема из 1.6-экспериментальной версии, из-за которой установка AcrylicBrush.TintLuminosityOpacity в .xaml в проекте библиотеки классов приводила к сбою с ошибкой преобразования типов.
  • Исправлена проблема, из-за которой вызов ItemsRepeater.StartBringIntoView иногда может привести к исчезновению элементов.
  • Исправлена проблема, из-за которой касание и перетаскивание на Button в ScrollViewer оставляло бы его в состоянии нажатия.
  • Обновился IntelliSense для предоставления информации о многих новых типах и членах, которую раньше не было.

Экспериментальная версия 1.6 (1.6.0-experimental1)

Это последний выпуск экспериментального канала.

Для загрузки перенаправьте версию 1.6.240531000-experimental1 NuGet пакета SDK для приложений Windows.

Обязательные изменения проекта C# для 1.6-experimental1

В версии 1.6-experimental1 управляемые приложения Windows App SDK требуют Microsoft.Windows.SDK.NET.Ref (или более поздней версии), что можно указать с помощью WindowsSdkPackageVersion в вашем csproj файле. Рассмотрим пример.

<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>
   ...

Кроме того, управляемые приложения пакета SDK для Приложений Windows с помощью C#/WinRT должны обновляться до Microsoft.Windows.CsWinRT2.1.0-prerelease.240602.1 (или более поздней версии).

Нативная поддержка AOT

Замечание

Для стабильного выпуска пакета SDK для приложений Windows 1.6.0 нижеприведенные рекомендации устарели. Проекты должны просто устанавливать PublishAot в true безоговорочно.

Свойство проекта .NET PublishAot теперь поддерживается для собственной компиляции на этапе разработки. Для получения подробной информации см. Нативное развертывание AOT. Из-за того, что AOT основывается на поддержке обрезки, большая часть следующих рекомендаций по обрезке также применяется к AOT.

Для PublishAot поддержки в дополнение к изменениям проекта C#, описанным в предыдущем разделе, также потребуется ссылка на пакет Microsoft.Windows.CsWinRT2.1.0-prerelease.240602.1 (или более поздней версии), чтобы включить генератор источника из этого пакета.

Так как пакет SDK для приложений Windows вызывает целевые объекты публикации при развертывании F5, рекомендуется включить PublishAot во время восстановления NuGet, добавив его в csproj файл:

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

Кроме того, рекомендуется условно включить PublishAot при публикации конфигураций выпуска либо в профилях публикации, либо в проекте:

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

Устранение проблем AOT

В этом выпуске разработчик отвечает за правильную корневую привязку всех типов, чтобы избежать исключения (например, с целями, основанными на отражении {Binding}). Более поздние выпуски расширят возможности C#/WinRT и компилятора XAML, чтобы автоматизировать корневую обработку, где это возможно, оповещать разработчиков о рисках, связанных с обрезкой, и предоставят механизмы для разрешения.

Частичные классы

C#/WinRT также включает PublishAot поддержку в версии 2.1.0-prerelease.240602.1. Чтобы включить класс для публикации AOT с помощью C#/WinRT, сначала его необходимо пометить partial. Это позволяет исходному анализатору C#/WinRT AOT атрибутировать классы для статического анализа. Только классы (содержащие методы, которые являются целями для обрезки) требуют этот атрибут.

Методы устранения отражений

Чтобы обеспечить совместимость с AOT, методы на основе отражения следует заменить статически типизированной сериализацией, AppContext.BaseDirectory, typeof() и т. д. Для получения подробной информации см. "Введение в предупреждения о тримминге".

Типы укоренения

Пока не будет реализована полная поддержка {Binding}, типы могут быть сохранены от обрезки следующим образом: учитывая проект P, использующий сборку A с типом T в пространстве имен N, который только динамически ссылается (поэтому обычно подвергается обрезке), T можно сохранить следующим образом:

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>

Полный синтаксис xml-выражений корневого дескриптора см. в разделе "Корневые дескрипторы".

Замечание

Пакеты зависимостей, которые еще не внедрили поддержку AOT, могут столкнуться с проблемами во время выполнения.

Улучшенный разрыв вкладки TabView

TabView поддерживает новый CanTearOutTabs режим, который предоставляет расширенный интерфейс для перетаскивания вкладок и перетаскивания в новое окно. Если этот новый параметр включен, перетаскивание вкладок очень похоже на режим перетаскивания вкладок в Edge и Chrome, где новое окно сразу же создается во время перетаскивания, что позволяет пользователю перетаскивать его на край экрана, чтобы развернуть или привязать окно в одном плавном движении. Эта реализация также не использует API перетаскивания, поэтому это не влияет на какие-либо ограничения в этих API. В частности, возможность отрыва вкладок поддерживается в процессах, работающих с повышенными привилегиями администратора.

Известная проблема: в этом выпуске поведение ввода CanTearOutTabs указателя неверно для мониторов с коэффициентом масштабирования, отличающимся от 100%. Это будет исправлено в следующем выпуске 1.6.

Новый элемент управления TitleBar

Новый TitleBar элемент управления упрощает создание отличной настраиваемой панели заголовков для приложения со следующими функциями:

  • Настраиваемые свойства значка, заголовка и субтитров
  • Встроенная кнопка "Назад"
  • Возможность добавления пользовательского элемента управления, например поля поиска
  • Автоматическое скрытие и отображение элементов на основе ширины окна
  • Возможности для отображения активного или неактивного состояния окна
  • Поддержка стандартных функций панели заголовка, включая перетаскиваемые области в пустых зонах, адаптацию темы, стандартные кнопки управления (свернуть/развернуть/закрыть) и встроенную поддержку специальных возможностей.

Элемент TitleBar управления предназначен для поддержки различных сочетаний строк заголовка, что делает его гибким для создания необходимого интерфейса без необходимости писать большой объем пользовательского кода. Мы учли отзывы по прототипу панели заголовка набора средств сообщества и с нетерпением ждем дополнительных отзывов!

Известная проблема: В этом выпуске TitleBar отображает только значок и заголовок из-за неполадки, которая мешает отображению некоторых элементов при загрузке. Чтобы обойти эту проблему, используйте следующий код, чтобы загрузить другие элементы (подзаголовок, заголовок, содержимое и нижний колонтитул):

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();
  }

Эта проблема будет устранена в следующем выпуске версии 1.6.

Другие заметные изменения
  • Распечатанный ItemsWrapGrid. Это должно быть обратно совместимое изменение.
  • PipsPager поддерживает новый режим, в котором он может обертывать между первым элементом и элементами списка.
  • RatingControl теперь является более настраиваемым, переместив некоторые жестко закодированные свойства стиля в ресурсы темы. Это позволяет приложениям переопределить эти значения, чтобы лучше настроить внешний вид RatingControl.
Новые API для 1.6-experimental1

1.6-экспериментальный1 включает следующие новые API. Эти API не экспериментальны, но еще не включены в стабильную версию пакета SDK для приложений Windows.

Microsoft.UI.Xaml.Controls

    PipsPager
        WrapMode
        WrapModeProperty

    PipsPagerWrapMode
        None
        Wrap
Дополнительные экспериментальные API 1.6

Этот выпуск включает следующие новые и измененные экспериментальные API:

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
Другие известные проблемы
  • Приложения, не использующие XAML, которые используют Microsoft.UI.Content.ContentIslands и не обрабатывают событие ContentIsland.AutomationProviderRequested (или возвращают nullptr в качестве поставщика автоматизации), завершатся сбоем, если включено любое средство специальных возможностей или автоматизации пользовательского интерфейса, такое как "Голосовой доступ", "Экранный диктор", "Аналитика специальных возможностей", Inspect.exe и т. д.
Исправления ошибок

В этом выпуске содержатся следующие исправления ошибок:

  • Исправлена проблема, из-за которой щелчок в пустой области ScrollViewer всегда перемещает фокус к первому фокусируемому элементу управления в ScrollViewer и прокручивает этот элемент в поле зрения. Дополнительные сведения см. в статье о проблеме GitHub #597.
  • Исправлена проблема, когда событие Window.Activated иногда запускалось несколько раз. Дополнительные сведения см. в статье о проблеме GitHub #7343.
  • Исправлена проблема, которая привела к тому, что установка NavigationViewItem.IsSelected свойства в true препятствует отображению его дочерних элементов при развертывании. Дополнительные сведения см. в статье о проблеме GitHub #7930.
  • Исправлена проблема, из-за которой MediaPlayerElement неправильно отображались подписи с эффектами края None или DropShadow. Дополнительные сведения см. в статье о проблеме GitHub #7981.
  • Исправлена проблема, из-за которой Flyout.ShowMode свойство не использовалось при отображении всплывающего элемента. Дополнительные сведения см. в статье о проблеме GitHub #7987.
  • Исправлена проблема, из-за которой NumberBox иногда возникают ошибки округления. Дополнительные сведения см. в статье о проблеме GitHub #8780.
  • Исправлена проблема, из-за которой использование библиотеки, скомпилированной против более старой версии Windows App SDK, может возникнуть проблема поиска типа или свойства. Дополнительные сведения см. в статье о проблеме GitHub #8810.
  • Исправлена проблема, из-за которой начальная фокусировка клавиатуры не задана при запуске окна. Дополнительные сведения см. в статье о проблеме GitHub #8816.
  • Исправлена проблема, из-за которой FlyoutShowMode.TransientWithDismissOnPointerMoveAway не работала после первого отображения. Дополнительные сведения см. в статье о проблеме GitHub #8896.
  • Исправлена проблема, из-за которой некоторые элементы управления неправильно связывались с шаблоном и свойствами Foreground и Background. Дополнительные сведения см. в статье о проблеме GitHub #7070, #9020, #9029, #9083 и #9102.
  • Исправлена проблема, из-за которой используемые в ThemeResource модулях VisualStateManager не обновлялись при изменении темы. Часто затрагиваемые элементы управления в всплывающих окнах. Дополнительные сведения см. в статье о проблеме GitHub #9198.
  • Исправлена проблема, из-за которой WebView теряет основной фокус, что приводит к дополнительным событиям потери и восстановления фокуса, а также другим проблемам. Дополнительные сведения см. в статье о проблеме GitHub #9288.
  • Исправлена проблема, из-за которой NavigationView в выходных данных отладки может отображаться ошибка привязки. Дополнительные сведения см. в статье о проблеме GitHub #9384.
  • Исправлена проблема, из-за которой файлы SVG, определяющие отрицательное поле просмотра, больше не отображались. Дополнительные сведения см. в статье о проблеме GitHub #9415.
  • Исправлена проблема, из-за которой изменение ItemsView.Layout ориентации привело к удалению элемента. Дополнительные сведения см. в статье о проблеме GitHub #9422.
  • Исправлена проблема, из-за которой при прокрутке ScrollView генерировалось большое количество выходных данных отладки. Дополнительные сведения см. в статье о проблеме GitHub #9434.
  • Исправлена проблема, из-за которой MapContorl.InteractiveControlsVisible не работает должным образом. Дополнительные сведения см. в статье о проблеме GitHub #9486.
  • Исправлена проблема, из-за которой MapControl.MapElementClick событие не срабатывает должным образом. Дополнительные сведения см. в статье о проблеме GitHub #9487.
  • Исправлена проблема, из-за которой x:Bind не проверяет значение NULL перед использованием слабой ссылки, что может привести к сбою. Дополнительные сведения см. в статье о проблеме GitHub #9551.
  • Исправлена проблема, из-за которой изменение свойства TeachingTip.Target неправильно обновляло его положение. Дополнительные сведения см. в статье о проблеме GitHub #9553.
  • Исправлена проблема, из-за которой раскрывающиеся списки не реагировали в WebView2. Дополнительные сведения см. в статье о проблеме GitHub #9566.
  • Исправлена утечка памяти при использовании GeometryGroup. Дополнительные сведения см. в статье о проблеме GitHub #9578.
  • Исправлена проблема, из-за которой прокрутка очень большого количества элементов в ItemRepeater в ScrollView может вызывать пустые кадры отрисовки. Дополнительные сведения см. в статье о проблеме GitHub #9643.
  • Исправлена проблема, из-за которой SceneVisual не работало.