Заметки о выпуске стабильного канала для пакета SDK для приложений Windows 1.4
Стабильный канал предоставляет выпуски пакета SDK для приложений Windows, которые поддерживаются приложениями в рабочих средах. Приложения, использующие стабильный выпуск пакета SDK для приложений Windows, также можно опубликовать в Microsoft Store.
Важные ссылки:
- Если вы хотите обновить существующее приложение с более старой версии пакета SDK для приложений Windows до более новой версии, ознакомьтесь с обновлением существующих проектов до последнего выпуска пакета SDK для приложений Windows.
Последний выпуск стабильного канала:
Скачиваемые файлы пакета 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
и для иGridView
TabNavigation = 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
элементам управления, но создается с помощьюItemsRepeater
ScrollView
ItemContainer
компонентов и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
элемент управления расширяет функциональность обычной полосы прокрутки, предоставляя простой способ навигации по большой коллекции элементов. Это достигается с помощью щелкаемой железной дороги с метками, которые действуют как маркеры. Кроме того, он позволяет более детально понять прокручиваемое содержимое, отображая подсказку при наведении указателя мыши на щелкаемый рельс.
Известные проблемы
- При использовании
ExtendsContentIntoTitleBar = true
щелчок в левом верхнем углу окна по умолчанию всегда отображается меню системного окна (свернуть или закрыть или т. д.), а не позволить указателю переходить к содержимому окна. Это, например, означает, что кнопка "Назад" в этой области заголовка не будет работать. Решение этой проблемы заключается в том, чтобы задатьAppWindow.TitleBar.IconShowOptions = Microsoft.UI.Windowing.IconShowOptions.HideIconAndSystemMenu
приложение AppWindow окна. - При скрытии всплывающих окон и всплывающих окон существуют
ShouldConstrainToRootBounds="False"
некоторые новые непрерывные исключения. Это включает скрытие подсказок, как сообщалось здесь: закрытие подсказки выдает 4 собственных исключения · Проблема #8699 · microsoft/microsoft-ui-xaml (github.com) - В версии 1.4 кнопки
ExtendsContentIntoTitleBar = true
заголовка min/max/close теперь рисуются AppWindow, а не XAML. Это по дизайну, но это может повлиять на приложения, которые переопределяют внутренние стили XAML, чтобы скрыть или выполнить дополнительную настройку этих кнопок, например в этом отчете: не удается скрыть кнопку подписи на панели заголовков · Проблема #8705 · microsoft/microsoft-ui-xaml (github.com) - В .NET 8 произошло критическое изменение в том, как он обрабатывает граф идентификатора среды выполнения: [Критическое изменение]: проекты, предназначенные для .NET 8 и выше, по умолчанию будут использовать меньший переносимый граф RID · Проблема #36527 · dotnet/docs (github.com). Из-за этой проблемы, так как .NET 8 официально не выпущена, пакет SDK для приложений Windows 1.4 официально не поддерживает .NET 8. Однако если вы по-прежнему хотите использовать предварительную версию .NET 8 с этой версией пакета SDK для приложений, рекомендуется выполнить следующие действия.
- Рекомендуется задать значение true UseRidGraph. Кроме того, необходимо обновить
<RuntimeIdentifiers>
свойство в.csproj
файле<RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>
, а также обновить каждыйPropeties\*pubxml
файл, чтобы переключиться на<RuntimeIdentifier>
win10
win
свойство (например, ).<RuntimeIdentifier>win-x86</RuntimeIdentifier>
- Рекомендуется задать значение true UseRidGraph. Кроме того, необходимо обновить
- С пакетом SDK для приложений Windows 1.4 целевой объект
GenerateDeploymentManagerCS
Microsoft.WindowsAppSDK.DeploymentManager.CS.targets
был переименованGenerateBootstrapCS
в . MenuFlyout
фон не использует запрошенную тему приложения:- Текст MenuFlyoutItem не синхронизируется с системной темой. · Проблема #8678 · microsoft/microsoft-ui-xaml (github.com)
- 1.4 предварительная версия: фоновая тема всплывающих элементов является производным от системной темы, а не из связанного элемента · Проблема #8756 · microsoft/microsoft-ui-xaml (github.com)
Исправления ошибок
- Исправлена проблема, из-за которой вызов 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 % накладные расходы на первый макет или отрисовку.
См. также
- Последние заметки о выпуске канала предварительной версии для пакета SDK для приложений Windows
- Последние заметки о выпуске экспериментального канала для пакета SDK для приложений Windows
- Установка инструментов для Windows App SDK
- Создание первого проекта WinUI 3 (пакет SDK для приложений Windows)
- Использование пакета Windows App SDK в существующем проекте
- Общие сведения о развертывании
Windows developer