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

Стабильный канал предоставляет выпуски пакета SDK для приложений Windows, которые поддерживаются приложениями в рабочих средах. Приложения, использующие стабильный выпуск пакета SDK для приложений Windows, также можно опубликовать в Microsoft Store.

Важные ссылки:

Последний выпуск стабильного канала:

Скачиваемые файлы пакета SDK для приложений для Windows

Примечание.

Расширения Visual Studio для пакета SDK для приложений Windows (VSIX) больше не распределяются в виде отдельной загрузки. Они доступны в Visual Studio Marketplace в Visual Studio.

Версия 1.4.7 (1.4.240802001)

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.4.

  • Исправлена проблема, из-за ItemsRepeater которой недостаточно элементов, если он был в всплывающем ShouldConstrainToRootBounds="false" окне, который был выше или шире, чем главное окно.
  • Исправлено потенциальное сбой при завершении работы, если AnnotatedScrollBar ожидается обновление метки.

Версия 1.4.6 (1.4.240512000)

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.4.

  • Исправлен потенциальный сбой при обработке входных данных.
  • Исправлена проблема, из-за которой операция перетаскивания, запущенная из другого приложения, может не разрешать правильные операции копирования, перемещения и удаления ссылок.
  • Исправлены сведения о исходном сервере WinUI для отладки, чтобы правильно указывать на репозиторий GitHub microsoft-ui-xaml.
  • Исправлена проблема с исправлением проблемы GitHub #8857 , чтобы правильно объединить библиотеку resources.pri в приложение resources.pri.

Версия 1.4.5 (1.4.240211001)

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.4.

  • Исправлена проблема, которая может зависать приложения при нажатии кнопки мыши при прокрутке с колесиком мыши. Дополнительные сведения см. в статье о проблеме GitHub #9233.
  • Исправлена проблема с повторяющимися ресурсами при ссылке на цепочку пакетов NuGet. Дополнительные сведения см. в статье о проблеме GitHub #8857.
  • Исправлено несколько BreadcrumbBar проблем, включая утечку памяти, сбой при пустом меню с многоточием, а меню с многоточием неправильно ограничено в окне.
  • Исправлена потенциальная авария при завершении работы при выпуске графических ресурсов.

Версия 1.4.4 (1.4.231219000)

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.4.

  • Исправлена проблема безопасности WinUI 3 диагностика.
  • Исправлена проблема ввода, из-за которой поле пароля не отображало экранную клавиатуру при активации с помощью сенсорного ввода. Дополнительные сведения см. в статье о проблеме GitHub #8946.
  • Исправлена проблема, из-за которой Microsoft.UI.Xaml.Controls.dll размер файла неожиданно вырос.
  • Исправлена проблема, из-за которой при установке фокуса произошел сбой CommandBarFlyout .
  • Обновлена поддержка пакета SDK для приложений Windows для обработки ресурсов для .NET 8 RID.
  • Исправлена проблема, из-за которой некоторые цепочки буферов были расположены или растягиваются неправильно.

Версия 1.4.3 (1.4.23115000)

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.4.

  • Исправлена проблема, из-за которой меню не было фона в течение короткого периода времени.
  • Исправлен сбой, который может произойти в определенных сценариях с несколькими мониторами.
  • Исправлена проблема, из-за которой контекстное меню могло отображаться вне экрана.
  • Исправлена проблема со стилями окон и максимальным поведением. Дополнительные сведения см. в статье о проблеме GitHub #8996.
  • Исправлена проблема с островами, где фокус может быть неожиданно получен из другого элемента управления.
  • Исправлена проблема с порядком NavigationViewвкладок.
  • Исправлена проблема отрисовки, из-за которой в верхней части заголовка может отображаться белая полоса. Дополнительные сведения см. в статье о проблеме GitHub #8947.
  • Различные исправления производительности.

Версия 1.4.2 (1.4.231008000)

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.4.

  • Исправлена проблема сбоя в explorer.exe, вызванная чрезмерным выделением памяти и объектов.
  • Исправлена проблема взаимодействия с заголовком, из-за которой кнопка "Назад" не работала должным образом.
  • Исправлена проблема, из-за которой создается предупреждение для исходного файла, включаемого несколько раз.
  • Исправлена проблема, влияющая на производительность контекстного меню.
  • Исправлена проблема с ярлыком .lnk, которая сделала целевой .exe всегда указывать на то же расположение пакетов в папке WindowsApps.
  • Исправлена проблема DWriteCore, влияющая на правильную отрисовку текста Indic в определенных шрифтах.
  • Исправлена проблема в представлении списка, которая препятствовала правильной навигации по клавиатуре в вложенные элементы с помощью tab/SHIFT+TAB.
  • Исправлена проблема, из-за которой сломал прокрутку элементов ComboBox путем касания после повторного расширения ComboBox. Дополнительные сведения см. в статье о проблеме GitHub #8831.
  • Исправлена проблема, из-за которой пакеты WinAppSDK не включали локализованные ресурсы WinUI для некоторых языков.
  • Исправлена несогласованность между тем, как проводник и XAML отображали предпочтительный язык пользователя.
  • Исправлена проблема с ремеслом в проводник из-за чего под активной вкладкой отображается тонкая линия.
  • Исправлена проблема, из-за которой некоторые акселераторы клавиатуры, предоставляемые платформой, были неправильно локализованы. Дополнительные сведения см. в статье о проблеме GitHub #2023.
  • Исправлена проблема с элементами управления RepeatButton, которые неоднократно прокручивались при нажатии.
  • Исправлен установщик WinAppSDK .exe, чтобы иметь правильные сведения о версии ресурса.

Версия 1.4.1 (1.4.230913002)

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.4.

  • Исправлены проблемы с производительностью, чтобы улучшить время до первого кадра.
  • Исправлена проблема, из-за которой меню не уважались RequestedTheme. Например, эта проблема может привести к белому тексту на белом фоне. Дополнительные сведения см. в статье о проблеме GitHub #8756.
  • Исправлена проблема, из-за которой акриловые фоны иногда становятся полностью прозрачными в некоторых меню.
  • Исправлена проблема, из-за которой XAML иногда приводил к тому, что Windows не нужно перенаправить обои на рабочем столе.
  • Исправлена поддержка TabNavigation = Local и для и GridViewTabNavigation = Cycle ListView , что теперь позволяет переходить между заголовками и элементами с помощью TAB в дополнение к клавишам со стрелками.
  • Исправлены некоторые шумные исключения при закрытии подсказки. Дополнительные сведения см. в статье о проблеме GitHub #8699.

Новые и обновленные функции и известные проблемы для версии 1.4

В следующих разделах описываются новые и обновленные функции и известные проблемы для версии 1.4.

В существующем приложении пакета SDK для приложений Windows 1.3 можно обновить пакет Nuget до версии 1.4.230822000 (см. раздел "Обновление пакета" в Visual Studio и управление ими с помощью диспетчер пакетов NuGet).

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

Настраиваемая панель заголовка + слияние заголовков AppWindow

Пользовательская панель заголовков WinUI 3 использует реализацию панели заголовков AppWindow, а также API NonClientInputPointerSource под капотом в пакете SDK для приложений Windows 1.4. В результате оба реализации заголовка теперь ведут себя одинаково с теми же функциями и ограничениями. Это полностью совместимо во всех поддерживаемых случаях. Любое приложение с настраиваемой панелью заголовков будет вести себя так же, как и раньше. Но теперь проще для разработчиков WinUI 3, которые могут быть новыми для пользовательских заголовков, чтобы понять и использовать их, используя эти новые функции:

  • Лучший сценарий по умолчанию, когда разработчик не определяет элемент заголовка конкретно (замена резервной панели заголовка из WinUI 2)
  • Отдельные области перетаскивания на панели заголовков, что позволяет создавать несколько регионов перетаскивания и размещать элементы управления щелчком в любой части области, отличной от клиента (область заголовка).
  • Перетаскиваемые области приложения, которые можно поместить в любое место приложения или сделать весь перетаскиваемый приложение
  • Улучшена поддержка тем, которая заменяет их на основе ресурсов
    • Так как области перетаскивания прозрачны, они следуют теме приложения каждый раз
  • Дополнительные настройки: скрытие минимальной, максимальной и закрываемой кнопки; поместите системные значки в заголовок; или имеют разные регионы, действующие в качестве кнопок подписей, получающих ответы NCHITTEST
  • Больше свободы разработчика, которая позволяет смешивать и сопоставлять с API панели заголовков AppWindow, например использовать ИНТЕРФЕЙСы API WinUI 3 более высокого уровня для большинства сценариев, но с API AppWindow, смешанными для управления более низким уровнем

Обновления мини-приложений

Добавлены три новых интерфейса для поставщиков мини-приложений для реализации: IWidgetProvider2, IWidgetProviderAnalyticsи IWidgetProviderErrors. IWidgetProvider2 позволяет поставщикам реагировать на действие "Настройка ", вызываемое пользователем, которое идентично тому, что доступно для сторонних мини-приложений. IWidgetProviderErrors Интерфейсы IWidgetProviderAnalytics используются поставщиками для сбора данных телеметрии для своих мини-приложений. Аналитика и события сбоя о мини-приложениях передаются соответствующим поставщикам мини-приложений. WidgetAnalyticsInfoReportedArgsКлассы WidgetCustomizationRequestedArgsи WidgetErrorInfoReportedArgs классы используются для обмена соответствующими сведениями для поддержки новых функциональных возможностей.

Xaml Islands больше не экспериментальные

Xaml Islands и базовая платформа ContentIslands больше не экспериментальны.

  • В настоящее время XAML Islands тестируются только для использования в приложениях C++. В этом выпуске нет удобных элементов оболочки для использования в WPF или WinForms.
  • DesktopWindowXamlSource и связанные типы добавлены в пространство имен Microsoft.UI.Xaml.Hosting для XAML Islands. XamlRoot.ContentIslandEnvironment добавлено, чтобы получить доступ к базовым сведениям о острове для элемента.
  • Многие новые типы появились в пространстве имен Microsoft.UI.Content и пространстве имен Microsoft.UI.Input в качестве базовой поддержки XAML Islands или для использования этой функции ContentIslands без XAML.
  • Добавлен новый DragDropManager (плюс связанные типы) в пространстве имен Microsoft.UI.Input.DragDrop для сценариев Island.

ItemsView

Мы представляем новый элемент управления списком под названием ItemsView и соответствующий конкретный ItemContainer класс. ItemContainer — это упрощенный контейнер со встроенными состояниями выбора и визуальными элементами, которые могут легко упаковывать требуемое содержимое и использоваться для ItemsView сценария управления коллекцией.

  • Новый ItemsView элемент управления отображает коллекцию данных. ItemsViewаналогичен ListView элементам управления и GridView элементам управления, но создается с помощью ItemsRepeaterScrollViewItemContainer компонентов и ItemCollectionTransitionProvider компонентов. Он предлагает уникальную возможность подключать пользовательские Layout или ItemCollectionTransitionProvider реализации. Еще одним ключевым преимуществом является возможность переключения макета во время сохранения выделения элементов. Внутренний ScrollView элемент управления также предлагает функции, недоступные в ScrollViewer ListView/GridViewэлементе управления, например возможность управления анимацией во время программных прокрутк.
    • Новое свойство ItemsRepeater (и новый ItemTransitionProvider ItemsView элемент управления) позволяет указать ItemCollectionTransitionProvider объект для управления анимациями перехода в этом элементе управления. Также CreateDefaultItemTransitionProvider был добавлен Layoutметод, который позволяет объекту макета обеспечить резервный переход для его сопровождения, если он не указан явным образом в элементе ItemsView управления.
    • Новое IndexBasedLayoutOrientation свойство, в Layout котором ориентация макета, если она есть, основана на их индексе в исходной коллекции. Значение по умолчанию — IndexBasedLayoutOrientation.None. Пользовательские макеты задают это свойство путем вызова нового (защищенного) SetIndexBasedLayoutOrientation метода.
    • Новое VisibleRect свойство VirtualizingLayoutContext , которое получает видимый прямоугольник окна представления в связанном FrameworkElement с ним объекте Layout. Защищенный виртуальный VirtualizingLayoutContext.VisibleRectCore метод можно переопределить, чтобы указать значение, которое будет возвращено из VisibleRect свойства.
  • Новый LinedFlowLayout класс обычно используется для размещения элементов элемента управления коллекцией ItemsView . Это особенно полезно для отображения коллекции рисунков. Это делает это, выкладывая их слева направо, и сверху вниз, в линиях равной высоты. Рисунки заполняют горизонтальную линию, а затем помещать в следующую строку. Изображения могут быть обрезаны в левой и правой краях, чтобы поместиться в линию. Они также могут быть развернуты горизонтально и обрезаны на верхних и нижних краях, чтобы заполнить линию при использовании режима растяжения.

Новые возможности из WinAppSDK

  • Новый ThemeSettings класс, позволяющий приложениям Win32 WinRT обнаруживать изменение параметра высокой контрастности системы, аналогично классу Специальные возможности UWP. Дополнительные сведения см. в спецификации API ThemeSettings на сайте GitHub.
  • AccessKeyManager.EnterDisplayMode — это новый метод для отображения ключей доступа для текущего ориентированного элемента предоставленного корня. Ключи доступа находятся в режиме отображения при отображении подсказки ключа для вызова команды, например нажатия клавиши ALT в Paint, чтобы показать, какие ключи соответствуют элементам управления. Этот метод позволяет программным способом вводить режим отображения.
  • Application.ResourceManagerRequested предоставляет механизм для IResourceManager разрешения URI ресурсов для сценариев, когда значение по умолчанию ResourceManager не будет работать. Дополнительные сведения см. в спецификации API Application.ResourceManagerRequested на GitHub.
  • Версия пакета SDK WebView2 была обновлена с версии 1661.34 до 1823.32.
  • Popup/FlyoutBase.IsConstrainedToRootBounds = false теперь поддерживается, позволяя всплывающему элементу или всплывающему элементу расширяться за пределами родительского окна. Свойство SystemBackdrop было добавлено к этим типам для поддержки акрила в этих неограниченных всплывающих окнах. Меню по умолчанию используются для использования акрила.
  • Closed, FrameworkClosedи были добавлены DesktopAcrylicController в IsClosed и MicaController для улучшения обработки во время завершения работы объекта или потока.
  • DesktopAcrylicController.Kind теперь можно выбрать один из стандартных акриловых внешних эффектов.
  • DispatcherQueue имеет некоторые новые события и вспомогательные средства, чтобы упростить более упорядоченное завершение работы и для приложений с помощью Островов, чтобы легко запустить стандартный поддерживаемый цикл событий.
  • InputNonClientPointerSource В пространстве имен Microsoft.UI.Input можно использовать для сценариев пользовательской панели заголовков для определения не клиентских областей. Код может зарегистрировать соответствующие события, например навести указатель мыши и щелкнуть события в этих регионах.
  • AppWindow имеет некоторые новые вспомогательные средства, чтобы получить и связать с DispatcherQueueним.
  • Новое TreeView.SelectionChanged событие позволяет разработчикам реагировать, когда пользователь или код изменяет набор выбранных узлов в элементе TreeView управления.
  • Новый ScrollView элемент управления предоставляет новую альтернативу ScrollViewer. Этот новый элемент управления очень выровнен в поведении и API с существующим ScrollViewer элементом управления, но основан на InteractionTrackerновых функциях, таких как изменения представления на основе анимации, а также предназначен для обеспечения полной функциональности ItemsRepeater. См. более гибкий ScrollViewer · Проблема #108 · Дополнительные сведения см. в microsoft/microsoft-ui-xaml (github.com). Различные новые типы, в том числе ScrollPresenterявляются частью общей ScrollView модели.
  • Новый AnnotatedScrollBar элемент управления расширяет функциональность обычной полосы прокрутки, предоставляя простой способ навигации по большой коллекции элементов. Это достигается с помощью щелкаемой железной дороги с метками, которые действуют как маркеры. Кроме того, он позволяет более детально понять прокручиваемое содержимое, отображая подсказку при наведении указателя мыши на щелкаемый рельс.

Известные проблемы

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

  • Исправлена проблема, из-за которой вызов API вызвал сбой Microsoft.Windows.AppLifecycle.AppInstance.Restart("") распакованных приложений. Дополнительные сведения см. в статье о проблеме GitHub 2792.
  • Исправлена проблема с сбоем установщика, появилась в версии 1.4-экспериментальной. Дополнительные сведения см. в статье о проблеме GitHub #3760.
  • Исправлена проблема, из-за которой зачеркнутый текст не был удален должным образом в TextBlock. Дополнительные сведения см. в статье о проблеме GitHub #1093.
  • Исправлена проблема, из-за которой некорректная навигация shift+ TAB в панели с табукуснойNavigation , заданная как "Один раз". Дополнительные сведения см. в статье о проблеме GitHub #1363.
  • Исправлена проблема в C++/WinRT, которая не смогла {x:Bind} правильно работать со свойством именованного элемента управления XAML. Дополнительные сведения см. в статье о проблеме GitHub #2721.
  • Исправлена проблема со средой выполнения AccessViolation в приложениях WinUI Desktop, вызванных параметром DebugSettings.EnableFrameRateCounter = true. Дополнительные сведения см. в статье о проблеме GitHub #2835.
  • Исправлена проблема, из-за которой XamlTypeInfo.g.cpp не включались необходимые заголовки. Дополнительные сведения см. в статье GitHub о проблеме 4907.
  • Исправлена проблема с сбоем, вызванная одновременным много сенсорным вводом и вводом мыши. Дополнительные сведения см. в статье о проблеме GitHub #7622.
  • Исправлена проблема, из-за которой активное окно приложения WinUI 3 не прокручивалось, когда системный параметр отключал прокрутку неактивных окон при наведении мыши. Дополнительные сведения см. в статье о проблеме GitHub #8764.
  • Исправлен сбой при попытке подкласса MediaPlayerElement.
  • Исправлены некоторые проблемы сбоя и утечки памяти в TreeView.
  • Исправлена проблема с зависанием приложения, которая может произойти при использовании клавиатуры для навигации RadioButtons.
  • Исправлен сбой при использовании клавиатуры для навигации.PipsPager
  • Исправлено содержимое WebView2 для масштабирования с параметром специальных возможностей "Размер текста" в приложении "Параметры".
  • Исправлен сбой, который может произойти при выполнении анимации при отключении дисплея.
  • Исправлена проблема с производительностью, появилась в версии 1.3, которая добавила около 10 % накладные расходы на первый макет или отрисовку.