Заметки о выпуске канала предварительной версии для пакета SDK для приложений Windows
Внимание
Канал предварительной версии не поддерживается для использования в рабочих средах, а приложения, использующие предварительные версии, не могут быть опубликованы в Microsoft Store.
Канал предварительной версии предоставляет предварительную версию следующего предстоящего стабильного выпуска. В период между выпуском предварительной и следующей стабильной версий могут быть реализованы критические изменения API. Предварительные выпуски каналов не включают экспериментальные API.
Важные ссылки:
- Если вы хотите обновить существующее приложение с более старой версии пакета SDK для приложений Windows до более новой версии, ознакомьтесь с обновлением существующих проектов до последнего выпуска пакета SDK для приложений Windows.
- Документация по предварительным выпускам см. в разделе "Установка средств для предварительной версии" и "Экспериментальные каналы" пакета SDK для приложений Windows.
Версия 1.5 preview 1 (1.5.0-preview1)
Это последний выпуск канала предварительной версии для версии 1.5.
В существующем приложении пакета SDK для приложений Windows 1.4 (из стабильного канала) можно обновить пакет Nuget до версии 1.5.0-preview1 (см. раздел "Обновление пакета" в Visual Studio и управление ими с помощью диспетчер пакетов NuGet).
Сведения об обновленной среде выполнения и MSIX см. в разделе "Загрузки" для пакета SDK для приложений Windows.
Обновления среды выполнения и завершения работы XAML Islands
- Существует разница в поведении между приложениями winAppSDK 1.4 и WinAppSDK 1.5 для приложений на основе Xaml Islands при закрытии последнего окна Xaml на любом потоке.
- В WinAppSDK 1.4 среда выполнения Xaml всегда завершает цикл событий потока при закрытии последнего окна Xaml в потоке.
- В WinAppSDK 1.5:
- Если приложение является классическим приложением WinUI, поведение по умолчанию по-прежнему совпадает с поведением в WinAppSDK 1.4.
- Если вы используете XAML для API DesktopWindowXamlSource ("Xaml Islands") по умолчанию, поведение по умолчанию теперь не завершает цикл событий потока автоматически.
- В обоих режимах это поведение можно изменить, задав
Application.DispatcherShutdownMode
свойство.
- Дополнительные сведения см. в документации по свойству
Application.DispatcherShutdownMode
при наличии.
- Существует разница в поведении между приложениями WinAppSDK 1.4 и WinAppSDK 1.5 для приложений на основе Xaml Islands в течение времени существования среды выполнения Xaml:
- В WinAppSDK 1.4 среда выполнения Xaml завершает работу в потоке, если все
WindowsXamlManager
объектыDesktopWindowXamlSource
в заданном потоке закрыты или завершаются, илиDispatcherQueue
выполнение на этом потоке завершается (среда выполнения Xaml завершает работу наDispatcherQueue.FrameworkShutdownStarting
этапе). - В WinAppSDK 1.5 среда выполнения Xaml завершает работу в потоке, только если диспетчерQueue, запущенный в этом потоке, завершает работу (среда выполнения Xaml завершает работу на
DispatcherQueue.FrameworkShutdownStarting
этапе). - Дополнительные сведения см. в документации по классу
WindowsXamlManager
при наличии.
- В WinAppSDK 1.4 среда выполнения Xaml завершает работу в потоке, если все
Элемент управления Карты WinUI
Теперь доступен первоначальный выпуск элемента управления WinUI Maps
! Этот элемент управления поддерживается WebView2 и Azure Карты, предоставляя следующие функции:
- Сдвиг и масштабирование с помощью кнопок карты или сенсорного ввода.
- Изменение стиля карты на спутник, местность или вид на улицу.
- Программно добавляя взаимодействуемые пин-коды с настраиваемыми значками разработчика на карту.
- Настройка разработчика, на которой карта сосредоточена на начальной загрузке.
- Управление для разработчиков при скрытии или отображении кнопок для сдвига, масштабирования и стилей карт.
Примечание.
Чтобы использовать Maps
элемент управления, вам потребуется ключ Azure Карты. Чтобы создать ключ, ознакомьтесь со страницей документации по Azure Карты для создания веб-приложения.
Элемент Maps
управления совершенно новый, и мы приветствуем ваши отзывы, чтобы оценить свое будущее направление!
Другие новые возможности из WinAppSDK
- Добавлена поддержка модели развертывания PublishSingleFile. Дополнительные сведения о PublishSingleFile см. в документации по развертыванию с одним файлом.
Исправления ошибок
- Исправлена проблема из выпуска 1.5-экспериментального2, в котором библиотека DLL проекции не была создана. Дополнительные сведения см. в статье о проблеме GitHub #4152.
- Исправлена проблема, из-за которой кнопка с многоточием в всплывающем
RichEditBox
реплике форматирования текста не отображала список действий должным образом. Дополнительные сведения см. в статье о проблеме GitHub #9140. - Исправлена проблема, из-за которой
ListView
не обрабатывались ускорители клавиатуры должным образом. Дополнительные сведения см. в статье о проблеме GitHub #8063. - Исправлена проблема с нарушением доступа при закрытии
AccessKey
окна. Дополнительные сведения см. в статье о проблеме GitHub #8648. - Исправлена проблема, влияющая на выравнивание текста в пределах
MenuFlyoutItem
MenuBar
. Дополнительные сведения см. в статье о проблеме GitHub #8755. - Исправлена проблема, из-за которой выделенный текст не оставался выделенным при щелчке правой кнопкой мыши. Дополнительные сведения см. в статье о проблеме GitHub #1801.
- Исправлена проблема, из-за которой неактивные окна завершались сбоем приложения при закрытии. Дополнительные сведения см. в статье о проблеме GitHub #8913.
- Исправлена проблема, которая может зависать приложения при прокрутке с помощью средней кнопки мыши и нажатия слева сразу после этого. Дополнительные сведения см. в статье о проблеме GitHub #9233.
Новые API в версии 1.5.0-preview1
Версия 1.5-preview1 включает следующие новые API по сравнению с стабильным выпуском 1.4:
Microsoft.Graphics.DirectX
DirectXPixelFormat
A4B4G4R4
Microsoft.UI.Input
FocusNavigationReason
FocusNavigationRequest
FocusNavigationRequestEventArgs
FocusNavigationResult
InputFocusController
DepartFocus
NavigateFocusRequested
InputFocusNavigationHost
Microsoft.UI.Xaml
Application
DispatcherShutdownMode
DebugSettings
LayoutCycleDebugBreakLevel
LayoutCycleTracingLevel
DispatcherShutdownMode
LayoutCycleDebugBreakLevel
LayoutCycleTracingLevel
Microsoft.UI.Xaml.Controls
MapControl
MapControlMapServiceErrorOccurredEventArgs
MapElement
MapElementClickEventArgs
MapElementsLayer
MapIcon
MapLayer
SelectorBar
SelectorBarItem
SelectorBarSelectionChangedEventArgs
WebView2
EnsureCoreWebView2Async
EnsureCoreWebView2Async
Microsoft.UI.Xaml.Hosting
WindowsXamlManager
GetForCurrentThread
XamlShutdownCompletedOnThread
XamlShutdownCompletedOnThreadEventArgs
Microsoft.Web.WebView2.Core
CoreWebView2
FrameId
CoreWebView2AcceleratorKeyPressedEventArgs
IsBrowserAcceleratorKeyEnabled
CoreWebView2BrowserExtension
CoreWebView2BrowsingDataKinds
ServiceWorkers
CoreWebView2CustomSchemeRegistration
CoreWebView2CustomSchemeRegistration (String)
AllowedOrigins
SchemeName
CoreWebView2Environment
GetProcessExtendedInfosAsync
CoreWebView2EnvironmentOptions
AreBrowserExtensionsEnabled
CustomSchemeRegistrations
CoreWebView2Frame
FrameId
CoreWebView2FrameInfo
FrameId
FrameKind
ParentFrameInfo
CoreWebView2FrameKind
CoreWebView2MouseEventKind
NonClientRightButtonDown
NonClientRightButtonUp
CoreWebView2NavigationKind
CoreWebView2NavigationStartingEventArgs
NavigationKind
CoreWebView2NewWindowRequestedEventArgs
OriginalSourceFrameInfo
CoreWebView2ProcessExtendedInfo
CoreWebView2Profile
AddBrowserExtensionAsync
Delete
Deleted
Microsoft.Windows.Management.Deployment
AddPackageOptions
EnsureReadyOptions
PackageDeploymentContract
PackageDeploymentManager
PackageDeploymentProgress
PackageDeploymentProgressStatus
PackageDeploymentResult
PackageDeploymentStatus
PackageRuntimeManager
PackageSet
PackageSetItem
PackageSetItemRuntimeDisposition
PackageSetRuntimeDisposition
PackageVolume
ProvisionPackageOptions
RegisterPackageOptions
RemovePackageOptions
StagePackageOptions
StubPackageOption
Microsoft.Windows.Widgets.Feeds.Providers
CustomQueryParametersRequestedArgs
CustomQueryParametersUpdateOptions
FeedDisabledArgs
FeedEnabledArgs
FeedManager
FeedProviderDisabledArgs
FeedProviderEnabledArgs
FeedProviderInfo
IFeedManager
IFeedProvider
Версия 1.4(предварительная версия 2) (1.4.0-preview2)
Это последний выпуск канала предварительной версии для версии 1.4.
В существующем приложении пакета SDK для приложений Windows 1.3 (из стабильного канала) можно обновить пакет Nuget до версии 1.4.0-preview2 (см. раздел "Обновление пакета" в Visual Studio и управление ими с помощью диспетчер пакетов NuGet).
Сведения об обновленной среде выполнения и MSIX см. в разделе "Загрузки" для пакета SDK для приложений Windows.
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
класс, представленный в версии 1.4-preview1, был существенно обновлен с новыми свойствами и новым вспомогательным классом.
- Новый
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
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 в версии 1.4.0-preview2
Версия 1.4-preview2 включает следующие новые API по сравнению с предыдущим выпуском 1.4-preview1:
Microsoft.UI
ClosableNotifierHandler
IClosableNotifier
Microsoft.UI.Composition.SystemBackdrops
DesktopAcrylicController
Closed
FrameworkClosed
IsClosed
Kind
DesktopAcrylicKind
MicaController
Closed
FrameworkClosed
IsClosed
Microsoft.UI.Content
ContentCoordinateConverter
ContentCoordinateRoundingMode
ContentDeferral
ContentEnvironmentSettingChangedEventArgs
ContentEnvironmentStateChangedEventArgs
ContentIsland
ContentIslandAutomationProviderRequestedEventArgs
ContentIslandEnvironment
ContentIslandStateChangedEventArgs
ContentLayoutDirection
ContentSite
ContentSiteEnvironment
ContentSiteEnvironmentView
ContentSiteRequestedStateChangedEventArgs
ContentSiteView
ContentSizePolicy
DesktopChildSiteBridge
DesktopSiteBridge
IContentSiteBridge
Microsoft.UI.Dispatching
DispatcherExitDeferral
DispatcherQueue
EnqueueEventLoopExit
EnsureSystemDispatcherQueue
FrameworkShutdownCompleted
FrameworkShutdownStarting
RunEventLoop
RunEventLoop
DispatcherQueueController
ShutdownQueue
DispatcherRunOptions
Microsoft.UI.Input
CharacterReceivedEventArgs
ContextMenuKeyEventArgs
FocusChangedEventArgs
InputActivationListener
GetForIsland
InputFocusChangedEventArgs
InputFocusController
InputKeyboardSource
CharacterReceived
ContextMenuKey
GetCurrentKeyState
GetForIsland
GetKeyState
KeyDown
KeyUp
SystemKeyDown
SystemKeyUp
InputNonClientPointerSource
InputPointerSource
GetForIsland
InputPreTranslateKeyboardSource
KeyEventArgs
NonClientCaptionTappedEventArgs
NonClientPointerEventArgs
NonClientRegionKind
NonClientRegionsChangedEventArgs
PhysicalKeyStatus
VirtualKeyStates
Microsoft.UI.Input.DragDrop
DragDropManager
DragDropModifiers
DragInfo
DragOperation
DragUIContentMode
DragUIOverride
DropOperationTargetRequestedEventArgs
IDropOperationTarget
Microsoft.UI.Windowing
AppWindow
AssociateWithDispatcherQueue
Create
DispatcherQueue
Microsoft.UI.Xaml
XamlRoot
ContentIslandEnvironment
Microsoft.UI.Xaml.Automation.Peers
ItemsViewAutomationPeer
Microsoft.UI.Xaml.Controls
AnnotatedScrollBar
AnnotatedScrollBarDetailLabelRequestedEventArgs
AnnotatedScrollBarLabel
AnnotatedScrollBarScrollingEventArgs
AnnotatedScrollBarScrollingEventKind
IndexBasedLayoutOrientation
ItemCollectionTransition
ItemCollectionTransitionCompletedEventArgs
ItemCollectionTransitionOperation
ItemCollectionTransitionProgress
ItemCollectionTransitionProvider
ItemCollectionTransitionTriggers
ItemsRepeater
ItemTransitionProvider
ItemTransitionProviderProperty
ItemsView
ItemsViewItemInvokedEventArgs
ItemsViewSelectionChangedEventArgs
ItemsViewSelectionMode
Layout
CreateDefaultItemTransitionProvider
IndexBasedLayoutOrientation
SetIndexBasedLayoutOrientation
LinedFlowLayout
LinedFlowLayoutItemCollectionTransitionProvider
LinedFlowLayoutItemsInfoRequestedEventArgs
LinedFlowLayoutItemsJustification
LinedFlowLayoutItemsStretch
ScrollingAnchorRequestedEventArgs
ScrollingAnimationMode
ScrollingBringingIntoViewEventArgs
ScrollingChainMode
ScrollingContentOrientation
ScrollingInputKinds
ScrollingInteractionState
ScrollingRailMode
ScrollingScrollAnimationStartingEventArgs
ScrollingScrollBarVisibility
ScrollingScrollCompletedEventArgs
ScrollingScrollMode
ScrollingScrollOptions
ScrollingSnapPointsMode
ScrollingZoomAnimationStartingEventArgs
ScrollingZoomCompletedEventArgs
ScrollingZoomMode
ScrollingZoomOptions
ScrollView
TreeView
SelectionChanged
TreeViewSelectionChangedEventArgs
VirtualizingLayoutContext
VisibleRect
VisibleRectCore
Microsoft.UI.Xaml.Controls.Primitives
FlyoutBase
SystemBackdrop
SystemBackdropProperty
IScrollController
IScrollControllerPanningInfo
Popup
SystemBackdrop
SystemBackdropProperty
RepeatedScrollSnapPoint
RepeatedZoomSnapPoint
ScrollControllerAddScrollVelocityRequestedEventArgs
ScrollControllerPanRequestedEventArgs
ScrollControllerScrollByRequestedEventArgs
ScrollControllerScrollToRequestedEventArgs
ScrollPresenter
ScrollSnapPoint
ScrollSnapPointBase
ScrollSnapPointsAlignment
SnapPointBase
ZoomSnapPoint
ZoomSnapPointBase
Microsoft.UI.Xaml.Hosting
DesktopWindowXamlSource
DesktopWindowXamlSourceGotFocusEventArgs
DesktopWindowXamlSourceTakeFocusRequestedEventArgs
WindowsXamlManager
XamlSourceFocusNavigationReason
XamlSourceFocusNavigationRequest
XamlSourceFocusNavigationResult
Версия 1.4(предварительная версия 1) (1.4.0-preview1)
Это последний выпуск канала предварительной версии для версии 1.4.
В существующем приложении пакета SDK для приложений Windows 1.3 (из стабильного канала) можно обновить пакет Nuget до версии 1.4.0-preview1 (см. раздел "Обновление пакета" в Visual Studio и управление ими с помощью диспетчер пакетов NuGet).
Сведения об обновленной среде выполнения и MSIX см. в разделе "Загрузки" для пакета SDK для приложений Windows.
Обновления мини-приложений
Добавлены три новых интерфейса для поставщиков мини-приложений для реализации: IWidgetProvider2
, IWidgetProviderAnalytics
и IWidgetProviderErrors
. IWidgetProvider2
позволяет поставщикам реагировать на действие "Настройка ", вызываемое пользователем, которое идентично тому, что доступно для сторонних мини-приложений. IWidgetProviderErrors
Интерфейсы IWidgetProviderAnalytics
используются поставщиками для сбора данных телеметрии для своих мини-приложений. Аналитика и события сбоя о мини-приложениях передаются соответствующим поставщикам мини-приложений. WidgetAnalyticsInfoReportedArgs
Классы WidgetCustomizationRequestedArgs
и WidgetErrorInfoReportedArgs
классы используются для обмена соответствующими сведениями для поддержки новых функциональных возможностей.
Новые возможности из WinAppSDK
- Новый
ThemeSettings
класс, позволяющий приложениям Win32 WinRT обнаруживать, когда параметр высокой контрастности системы изменился, как и класс специальных возможностей UWP Параметры. Дополнительные сведения см. в спецификации API Параметры на сайте GitHub. Popup/FlyoutBase.ShouldConstrainToRootBounds
теперь поддерживается, чтобы разрешить подсказки, меню и другие всплывающие окна, чтобы расширить границы главного окна. Предварительная версия 1 еще не полностью поддерживает акриловые или другие SystemBackdrops во всплывающем или всплывающем элементе; дополнительные API и реализация для этого будут включены в следующий выпуск версии 1.4.AccessKeyManager.EnterDisplayMode
— это новый метод для отображения ключей доступа для текущего ориентированного элемента предоставленного корня. Ключи доступа находятся в режиме отображения при отображении подсказки ключа для вызова команды, например нажатия клавиши ALT в Paint, чтобы показать, какие ключи соответствуют элементам управления. Этот метод позволяет программным способом вводить режим отображения.Application.ResourceManagerRequested
предоставляет механизм дляIResourceManager
разрешения URI ресурсов для сценариев, когда значение по умолчаниюResourceManager
не будет работать. Дополнительные сведения см. в спецификации API Application.ResourceManagerRequested на GitHub.- Мы представляем новый элемент управления списком под названием
ItemsView
и соответствующий конкретныйItemContainer
класс.ItemContainer
— это упрощенный контейнер со встроенными состояниями выбора и визуальными элементами, которые могут легко упаковывать требуемое содержимое и использоваться дляItemsView
сценария управления коллекцией.ItemsView
по-прежнему отмечен экспериментальный в предварительной версии 1, но будет включен в следующий выпуск версии 1.4. - Версия пакета SDK WebView2 была обновлена с версии 1661.34 до 1823.32.
Новые API в версии 1.4.0-preview1
Версия 1.4-preview1 включает следующие новые API по сравнению с стабильным выпуском 1.3:
Microsoft.UI.System
ThemeSettings
Microsoft.UI.Xaml
Application
ResourceManagerRequested
ResourceManagerRequestedEventArgs
Microsoft.UI.Xaml.Automation.Peers
ItemContainerAutomationPeer
Microsoft.UI.Xaml.Controls
ItemContainer
Microsoft.UI.Xaml.Controls.Primitives
CommandBarFlyoutCommandBar
SystemBackdrop
SystemBackdropProperty
Microsoft.UI.Xaml.Input
AccessKeyManager
EnterDisplayMode
Microsoft.Web.WebView2.Core
CoreWebView2
LaunchingExternalUriScheme
MemoryUsageTargetLevel
CoreWebView2File
CoreWebView2LaunchingExternalUriSchemeEventArgs
CoreWebView2MemoryUsageTargetLevel
CoreWebView2PermissionKind
WindowManagement
CoreWebView2Profile
CookieManager
IsGeneralAutofillEnabled
IsPasswordAutosaveEnabled
CoreWebView2Settings
IsReputationCheckingRequired
CoreWebView2WebMessageReceivedEventArgs
AdditionalObjects
Microsoft.Windows.Widgets.Providers
IWidgetProvider2
IWidgetProviderAnalytics
IWidgetProviderErrors
WidgetAnalyticsInfoReportedArgs
WidgetCustomizationRequestedArgs
WidgetErrorInfoReportedArgs
Версия 1.3 preview 1 (1.3.0-preview1)
Это последний выпуск канала предварительной версии для версии 1.3. Этот выпуск включает предварительные версии для новых функций в WinAppSDK и нескольких производительности, безопасности, специальных возможностей и исправлений ошибок надежности.
В существующем приложении пакета SDK для приложений Windows 1.2 (из стабильного канала) можно обновить пакет Nuget до версии 1.3.0-preview1 (см. раздел "Обновление пакета" в Visual Studio и управление ими с помощью диспетчер пакетов NuGet).
Сведения об обновленной среде выполнения и MSIX см. в разделе "Загрузки" для пакета SDK для приложений Windows.
API фона XAML
Благодаря свойствам, встроенным в окно XAML, mica и фоновые акриловые фоны теперь проще использовать в приложении WinUI 3. Дополнительные сведения о свойстве Window.SystemBackdrop см. в спецификации API фона Xaml на сайте GitHub.
public MainWindow()
{
this.InitializeComponent();
this.SystemBackdrop = new MicaBackdrop();
}
Window.AppWindow
Замена нескольких строк стандартного кода теперь позволяет использовать API AppWindow непосредственно из окна.Window.AppWindow
Дополнительные сведения о фоновом и использовании см. в спецификации API Window.AppWindow на сайте GitHub.
Новые возможности из WinAppSDK
ApplicationModel.DynamicDependency
:PackageDependency.PackageGraphRevisionId
заменяет устаревший mddGetGenerationId.- Environment Manager:
EnvironmentManager.AreChangesTracked
чтобы сообщить, могут ли изменения в диспетчере среды отслеживаться в приложении. Дополнительные сведения см. в спецификации API Environment Manager на сайте GitHub. - MRT Core: новое событие позволяет
Application.ResourceManagerInitializing
приложению предоставлять собственную реализациюIResourceManager
интерфейса и предоставлять доступ к ResourceManager, который WinUI использует для разрешения URI ресурсов. Дополнительные сведения см. в спецификации API IResourceManager на сайте GitHub. - С помощью последней экспериментальной ВЕРСИИ VSIX теперь вы можете преобразовать приложение между распаковкой и упакованным с помощью меню Visual Studio вместо файла проекта.
- Новое событие возникает,
DebugSettings.XamlResourceReferenceFailed
когда не удается устранить ссылку static/ThemeResource. Это событие предоставляет доступ к трассировке, в которой платформа ищет этот ключ, чтобы лучше разрешить отладку сбоев статических и подстановок ThemeResource. Дополнительные сведения см. в спецификации API и проблемах 4972, 2350 и 6073 на сайте GitHub. - Развертывание. Управление средой выполнения
DeploymentRepairOptions
приложений Windows и восстановление теперь доступно как частьDeploymentManager
. Дополнительные сведения см. в разделе "Восстановление" спецификации API развертывания на GitHub.
Известные проблемы
- Элемент управления Pivot приводит к сбою среды выполнения с ошибкой синтаксического анализа XAML. Дополнительные сведения см. в статье # 8160 на сайте GitHub.
- Когда откроется всплывающее окно DatePicker или TimePicker, приложение завершает работу.
WindowsAppRuntime.RuntimeInfo
ИнтерфейсыWindowsAppRuntime.ReleaseInfo
API, представленные в выпусках 1.3, пока не поддерживаются, так как они содержат критически важные ошибки.
Версия 1.2(предварительная версия 2) (1.2.0-preview2)
Это последний выпуск канала предварительной версии для версии 1.2.
В существующем приложении пакета SDK для приложений Windows 1.1 (из стабильного канала) можно обновить пакет Nuget до версии 1.2.0-preview2 (см. раздел "Обновление пакета" в Visual Studio и управление ими с помощью диспетчер пакетов NuGet).
Сведения об обновленной среде выполнения и MSIX см. в разделе "Загрузки" для пакета SDK для приложений Windows.
Внимание
Visual Studio 2019 и .NET 5 больше не поддерживаются для создания приложений C# (см. пакет SDK для приложений Windows 1.2, переход на C# WinRT 2.0). Вам потребуется Visual Studio 2022 и одна из следующих версий пакета SDK для .NET: 6.0.401 (или более поздней версии), 6.0.304, 6.0.109.
Чтобы обновить версию пакета SDK для .NET, установите последнюю версию Visual Studio 2022 или посетите скачиваемых файлов .NET. При обновлении пакета NuGet без требуемой версии пакета SDK для .NET появится сообщение об ошибке: "Для этой версии WindowsAppSDK требуется .NET 6+ и WinRT.Runtime.dll версии 2.0 или более поздней." Чтобы обновить проект от .NET 5.0 до .NET 6.0, откройте файл проекта и измените "TargetFramework" на "Целевая версия ОС" net6.0
на соответствующее значение (например net6.0-windows10.0.19041.0
).
Сторонние мини-приложения в Windows
Доска мини-приложений была впервые представлена в Windows 11 и была ограничена отображением сторонних мини-приложений. Мини-приложения — это небольшие контейнеры пользовательского интерфейса, которые отображают текст и графику на панели мини-приложений и связаны с приложением, установленным на устройстве. С помощью пакета SDK для приложений Windows в качестве сторонних разработчиков теперь можно создавать мини-приложения для упакованных приложений Win32 и тестировать их локально в доске мини-приложений Windows 11.
Дополнительные сведения о мини-приложениях проверка обзор мини-приложений.
Чтобы приступить к разработке мини-приложений, проверка из документации по разработке поставщиков служб мини-приложений и конструкторов мини-приложений для предварительных требований, рекомендаций и рекомендаций.
Необходимые условия для этого выпуска:
- Режим разработчика включен на компьютере разработки.
- Компьютер разработки работает с версией Windows из канала разработки программы предварительной оценки Windows (WIP) с мини-приложением Board версии 521.20060.1205.0 или более поздней.
Известные ограничения при разработке мини-приложений
- Сторонние мини-приложения можно протестировать только локально на устройствах, зарегистрированных в WIP для этого предварительного выпуска. В пакете SDK для приложений Windows 1.2.0 пользователи в розничных версиях Windows могут начать получать 3P-мини-приложения с помощью Microsoft Store, отправляемых версий приложения.
- Мини-приложения можно создавать только для упакованных приложений Win32. Мини-приложения для прогрессивных веб-приложения (PWA) планируется поддерживать в составе Microsoft Edge 108.
Обрезка для приложений, разработанных с помощью .NET
Разработчики .NET теперь могут публиковать свои приложения WinAppSDK, обрезанные. При использовании CsWinRT 2.0 проекции C#/WinRT, распределенные в WinAppSDK, теперь обрезаются. Публикация обрезки приложения может уменьшить объем дискового пространства приложения, удалив любой неиспользуемый код из обрезки двоичных файлов. Приложения также могут видеть улучшение производительности запуска. Благодаря базовому приложению Hello World мы видели улучшение объема дискового пространства на ~80% и повышение производительности запуска на ~7% при публикации обрезки. С коллекцией WinUI мы видели улучшение дискового пространства на ~45 %.
Дополнительные сведения о включении обрезки, ограничений обрезки (например, отражения от типов обрезки) и предупреждений об обрезки см. в разделе "Обрезка автономных развертываний и исполняемых файлов". Разработчики должны тщательно протестировать свои приложения после обрезки, чтобы убедиться, что все работает должным образом. Дополнительные сведения проверка выпуск 2478 на GitHub.
DisplayInformation
Теперь приложения Win32 могут поддерживать высокий динамический диапазон (HDR) через класс DisplayInformation в WinAppSDK. Класс DisplayInformation позволяет отслеживать сведения, связанные с отображением, для представления приложения. К ним относятся события, позволяющие клиентам отслеживать изменения в представлении приложения, влияющие на отображение, в котором находится представление, а также изменения в дисплеях, которые могут повлиять на представление приложения.
Исправлены проблемы в WinUI 3
- Акриловый фоновый материал через DesktopAcrylicController теперь поддерживается в приложениях Windows 10. Дополнительные сведения проверка проблемы 7112 на GitHub.
- Исправлена проблема, из-за которой App.UnhandledException не удалось перенаправить в приложение. Дополнительные сведения проверка проблемы 5221 на GitHub.
- Исправлена проблема, из-за которой стили ListView регрессировали и изменились с WinAppSDK 1.1. Дополнительные сведения см. в проверка выпуске 7666 на сайте GitHub.
Другие ограничения и известные проблемы
Внимание
При ссылке на WinAppSDK 1.2 из проекта может появиться ошибка, аналогичная: "Обнаружена пониженная версия пакета: Microsoft.Windows.SDK.BuildTools с 10.0.22621.1 до 10.0.22000.194.", которая вызвана несовместимыми ссылками на пакет из проекта приложения и пакета WinAppSDK. Чтобы устранить эту проблему, можно обновить ссылку в проекте до более новой и совместимой версии Microsoft.Windows.SDK.BuildTools или просто удалить ссылку из проекта. Если удалить его из проекта, совместимая версия будет неявно ссылаться на пакет WinAppSDK.
- Сборка с помощью Arm64 Visual Studio в настоящее время не поддерживается.
- Bootstrapper и Undocked RegFree WinRT auto-initializer defaults is (now) заданы только для проектов, которые создают исполняемый файл (OutputType=Exe или WinExe). Это предотвращает добавление автоматических инициализаторов в библиотеки классов DLL и других не исполняемых файлов по умолчанию.
- Если вам нужен автоматический инициализатор в неисполняемом файле (например, тестовая библиотека DLL, загруженная универсальным исполняемым файлом, который не инициализирует начальную загрузку), вы можете явно включить автоматический инициализатор в проекте через
<WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize>
или<WindowsAppSdkUndockedRegFreeWinRTInitialize>true</WindowsAppSdkUndockedRegFreeWinRTInitialize>
.
- Если вам нужен автоматический инициализатор в неисполняемом файле (например, тестовая библиотека DLL, загруженная универсальным исполняемым файлом, который не инициализирует начальную загрузку), вы можете явно включить автоматический инициализатор в проекте через
- Api сведений о версии (ReleaseInfo и RuntimeInfo) можно вызывать, но возвращать версию 0 (а не фактическую информацию о версии).
Версия 1.2(предварительная версия 1) (1.2.0-preview1)
В существующем приложении пакета SDK для приложений Windows 1.1 (из стабильного канала) можно обновить пакет Nuget до версии 1.2.0-preview1 (см. раздел "Обновление пакета" в Visual Studio с помощью диспетчер пакетов NuGet).
Сведения об обновленной среде выполнения и MSIX см. в разделе "Загрузки" для пакета SDK для приложений Windows.
WinUI 3
Приложения WinUI 3 могут воспроизводить звук и видео с помощью элементов управления воспроизведением мультимедиа MediaPlayerElement и MediaTransportControls. Дополнительные сведения о том, как и когда использовать элементы управления мультимедиа, см. в разделе "Проигрыватели мультимедиа".
WinUI 3 обновлен с помощью последних элементов управления, стилей и поведения из WinUI 2.8. К этим обновлениям относятся добавление элемента управления InfoBadge , улучшения специальных возможностей и режима высокой контрастности, а также исправления ошибок в элементах управления. Дополнительные сведения см. в заметках о выпуске WinUI 2.7 и WinUI 2.8.
Известная проблема
Стили ListView регрессировали и изменились с WinAppSDK 1.1.
Notifications
AppNotificationBuilder представлен в качестве альтернативы полезным данным XML для создания и определения уведомлений приложений.
Сведения об использовании см. в спецификации AppNotificationBuilder на GitHub.
См. также краткое руководство. Уведомления о приложениях в пакете SDK для приложений Windows см. в примере создания классического приложения Windows, которое отправляет и получает уведомления о локальном приложении.
Критическое изменение
Для push-уведомлений при вызове запроса канала приложениям потребуется использовать идентификатор объекта Azure вместо идентификатора приложение Azure. Дополнительные сведения о поиске идентификатора объекта Azure см . в кратком руководстве.
Исправленные проблемы
PushNotificationManager.IsSupported будет выполнять проверка для режима с повышенными привилегиями. Он возвращается false
, если приложение повышено.
Известные ограничения (уведомления)
- В AppNotificationScenario
Urgent
поддерживается только для сборок Windows 19041 и более поздних версий. Вы можете использовать AppNotificationBuilder.IsUrgentScenarioSupported, чтобы проверка, доступна ли функция во время выполнения. - В AppNotificationButton
hint-toolTip
иhint-buttonStyle
поддерживается только для сборок 19041 и более поздних версий. Вы можете использовать IsButtonStyleSupported и IsToolTipSupported, чтобы проверка, доступна ли функция во время выполнения. - В MediaPlayerElement при использовании в разметке XAML для распаковочного приложения свойство Source нельзя задать с помощью URI ms-appx или ms-resource. В качестве альтернативы задайте источник с помощью URI файла или задайте его из кода.
Оконное расширение
Полная настройка строки заголовка теперь доступна в Windows 10 версии 1809 и более поздних версий с помощью класса AppWindowTitleBar . Вы можете задать AppWindowTitleBar.ExtendsContentIntoTitleBar для true
расширения содержимого в области заголовка и SetDragRectangles , чтобы определить области перетаскивания (помимо других параметров настройки).
Если вы использовали свойство AppWindowTitleBar.IsCustomizationSupported для проверка можно ли вызывать API AppWindowTitleBar, теперь он возвращает true
поддерживаемые версии Windows App SDK для Windows 10 (1809 и более поздних версий).
Известные ограничения (окно)
Простые настройки строки заголовков не поддерживаются в Windows 10. К ним относятся BackgroundColor, InactiveBackgroundColor, ForegroundColor, InactiveForegroundColor и IconShowOptions. При вызове этих свойств они будут игнорироваться автоматически. Все остальные API AppWindowTitleBar работают в Windows 10 версии 1809 и более поздних версий. Для API цвета подпись кнопки (среди прочего) и Height необходимо задать true
значение ExtendsContentIntoTitleBar. В противном случае они также будут игнорироваться автоматически.
Управление доступом
Появилась функция security.accesscontrol.h с функцией GetSecurityDescriptorForAppContainerNames , чтобы упростить и упростить совместное использование именованных объектов между упакованными процессами и общими API Win32. Этот метод принимает список имен семейств пакетов (PFN) и маски доступа и возвращает дескриптор безопасности. Дополнительные сведения см. в спецификации GetSecurityDescriptorForAppContainerNames на сайте GitHub.
Другие ограничения и известные проблемы
- .NET PublishSingleFile не поддерживается.
Версия 1.1(предварительная версия 3) (1.1.0-preview3)
Это последний выпуск канала предварительной версии для версии 1.1. Она поддерживает все функции канала предварительной версии (см. сведения о функциях, доступных по каналу выпуска).
В существующем приложении с помощью пакета SDK для приложений Windows 1.0 можно обновить пакет Nuget до версии 1.1.0-preview3 (см. раздел "Обновление пакета" в Visual Studio и управление ими с помощью диспетчер пакетов NuGet). Кроме того, см. статью "Загрузки" для пакета SDK для приложений Windows для обновленной среды выполнения и MSIX.
Примечание.
Для разработчиков C# требуется одна из следующих версий пакета SDK для .NET (или более поздней версии): 6.0.202, 6.0.104, 5.0.407, 5.0.213. Чтобы обновить версию пакета SDK для .NET, посетите .NET Downloads or update to the latest version of Visual Studio. Без требуемой версии пакета SDK для .NET при обновлении пакета NuGet появится сообщение об ошибке: "Для этой версии WindowsAppSDK требуется WinRT.Runtime.dll версии 1.6 или больше".
Помимо всех функций предварительной версии 2 , в следующих разделах описываются новые и обновленные функции, ограничения и известные проблемы для этого выпуска.
WinUI 3
Мика и фоновый акрил теперь доступны для приложений WinUI 3.
Дополнительные сведения об этих материалах проверка материалы в Windows 11. Ознакомьтесь с нашим примером кода для применения Mica в приложениях C++ на сайте Using a SystemBackdropController с WinUI 3 XAML и в приложениях C# на сайте GitHub в составе коллекции элементов управления WinUI.
Notifications
Исправленные проблемы:
- В версии 1.1.0-preview1 и 1.1.0-preview2 некоторые непакованные приложения будут неправильно скопированы в AppData\LocalMicrosoftWindowsAppSDK. Для этого выпуска они будут скопированы в AppData\Local\Microsoft\WindowsAppSDK. Чтобы избежать утечки значков, следует вручную удалить значок приложения по неправильному пути после обновления до версии 1.1.0-preview3.
- Теперь поддерживается получение значка приложения и отображаемого имени приложения для уведомлений о приложении с помощью ярлыков. Этот значок приложения будет иметь приоритет над любым значком, указанным в файлах ресурсов.
- Поддержка push-уведомлений для распакованных приложений восстановлена (см . ограничения для указанного исключения). Мы представили API PushNotificationManager::IsSupported, чтобы проверка, если ваше приложение поддерживает push-уведомления.
Ограничения:
- Уведомления для приложения с повышенными привилегиями не поддерживаются. PushNotificationManager::IsSupported не будет выполнять проверка для режима с повышенными привилегиями. Однако мы работаем над поддержкой этого в будущем выпуске.
Упаковка MSIX
Мы усовершенствовали MSIX, добавив новые и расширяющие существующие функции с помощью категорий расширений:
- windows.appExecutionAlias;
- windows.customDesktopEventLog
- windows.dataShortcuts
- windows.fileTypeAssociation
- windows.fileTypeAssociation.iconHandler
- windows.folder
- windows.shortcut
Для них требуется установить пакет пакета SDK для приложений Windows. Сведения о загрузке пакета SDK для приложений Windows для установки среды выполнения.
Диспетчер среды
Набор API, позволяющий разработчикам добавлять, удалять и изменять переменные среды без необходимости напрямую использовать API реестра.
Уточнение от версии 1.1 (предварительная версия 1): автоматическое удаление любых переменных среды при удалении приложения, использующее диспетчер среды, доступно только для упакованных приложений. Кроме того, для изменения переменной среды отменить изменения требуется установка пакета пакета sdk для приложений Для Windows, см. статью "Загрузки пакета SDK для приложений Windows" для среды выполнения.
Прочие известные ограничения
Регрессии из версии 1.1( предварительная версия 2):
- Для приложений .NET с помощью API MRT Core и приложений WinUI, которые не развертываются с помощью msIX с одним проектом:
- ФАЙЛЫ RESW и изображения, которые были добавлены в проект как существующие элементы и ранее автоматически включены в PRIResource и Content ItemGroups соответственно, не будут включены в эти группы элементов. В результате эти ресурсы не будут индексированы во время создания PRI, поэтому они не будут доступны во время выполнения.
- Обходной путь. Вручную включите ресурсы в файл проекта и удалите их из Группы элементов None.
- Альтернативное решение. При наличии обновите пакет SDK для .NET для приложений до версии 6.0.300. Дополнительные сведения см . в разделе "Требования к версиям" для пакета SDK для .NET.
- ФАЙЛЫ RESW и изображения, которые были добавлены в проект как существующие элементы и ранее автоматически включены в PRIResource и Content ItemGroups соответственно, не будут включены в эти группы элементов. В результате эти ресурсы не будут индексированы во время создания PRI, поэтому они не будут доступны во время выполнения.
- Для приложений .NET, которые не развертываются с одним проектом MSIX:
- Если файл добавляется в группу содержимого ItemGroup дважды или более, произойдет ошибка сборки.
- Обходной путь. Удалите повторяющееся включение/с или задайте для EnableDefaultContentItems значение false в файле проекта.
- Если файл добавляется в группу содержимого ItemGroup дважды или более, произойдет ошибка сборки.
Обе регрессии будут восстановлены в следующем стабильном выпуске.
Версия 1.1(предварительная версия 2) (1.1.0-preview2)
Это второй выпуск канала предварительной версии для версии 1.1. Она поддерживает все функции канала предварительной версии (см. сведения о функциях, доступных по каналу выпуска).
В существующем приложении с помощью пакета SDK для приложений Windows 1.0 можно обновить пакет Nuget до версии 1.1.0-preview2 (см. раздел "Обновление пакета" в Visual Studio и управление ими с помощью диспетчер пакетов NuGet). Кроме того, см. статью "Загрузки" для пакета SDK для приложений Windows для обновленной среды выполнения и MSIX.
Примечание.
Для разработчиков C# требуется одна из следующих версий пакета SDK для .NET (или более поздней версии): 6.0.202, 6.0.104, 5.0.407, 5.0.213. Чтобы обновить версию пакета SDK для .NET, посетите .NET Downloads or update to the latest version of Visual Studio. Без требуемой версии пакета SDK для .NET при обновлении пакета NuGet появится сообщение об ошибке: "Для этой версии WindowsAppSDK требуется WinRT.Runtime.dll версии 1.6 или больше".
Помимо всех функций предварительной версии 1 , в следующих разделах описываются новые и обновленные функции, ограничения и известные проблемы для этого выпуска.
Notifications
Исправленные проблемы:
- Приложение без удостоверений пакета, отправляющего уведомления, теперь увидит его значок приложения в уведомлении, если значок является частью ресурса приложения. Если ресурс приложения не имеет значка, используется значок приложения Windows по умолчанию.
- Приложение WinUI 3, которое не запущено, теперь может быть активировано в фоновом режиме с помощью уведомления.
Регрессия от версии 1.1(предварительная версия 1): поддержка push-уведомлений для распакованных приложений. Ожидается восстановление в следующем выпуске.
Известные ограничения:
- Мы представили API PushNotificationManager::IsSupported для проверка если автономные приложения поддерживают push-уведомления. Однако этот API еще не работает должным образом, поэтому следите за поддержкой API IsSupported в следующем предварительном выпуске.
- Некоторые непакованные приложения увидят их значки приложения неправильно скопированы в AppData\LocalMicrosoftWindowsAppSDK. Для следующего выпуска они будут скопированы в AppData\Local\Microsoft\WindowsAppSDK. Чтобы избежать утечки значков, разработчик должен вручную удалить значок приложения по неправильному пути после обновления до следующего выпуска.
- Значок приложения и получение отображаемого имени приложения для уведомлений с помощью ярлыков не поддерживается. Но мы работаем над поддержкой этого в будущем выпуске.
Развертывание
Новые функции:
- Упакованные приложения теперь могут принудительно развертывать пакеты среды выполнения пакета SDK для приложений Windows с помощью API DeploymentManager.Initialize .
- API начальной загрузки теперь включает новые параметры для улучшения удобства использования и устранения неполадок. Дополнительные сведения см. в разделе "Использование среды выполнения пакета SDK для приложений Windows", упакованных с внешним расположением или распаковкой и подробными сведениями о сбое инициализации Bootstrap.
Известные ограничения:
- Автономное развертывание поддерживается только в Windows 10, 1903 и более поздних версиях.
Оконное расширение
Чтобы упростить программный доступ к функциям, реализованным в (см. Windows и сообщения), этот выпуск предоставляет больше возможностей в AppWindow.USER32.dll
Новые функции:
- Приложения с существующими окнами имеют больше контроля над отображением окна путем вызова AppWindow.ShowOnceWithRequestedStartupState — эквивалента
ShowWindow(SW_SHOWDEFAULT)
. - Приложения могут отображать, свернуть или восстановить окно и указать, следует ли активировать окно во время вызова.
- Теперь приложения могут задать размер клиентской области окна в координатах Win32.
- Мы добавили API для поддержки управления окнами z-порядка.
- Приложения, рисуемые настраиваемыми строками заголовков с помощью AppWindowTitleBar.ExtendsContentIntoTitleBar, могут задать параметр PreferredTitleBarHeight. У вас есть выбор стандартной высоты заголовка или высоты заголовка, которая обеспечивает больше места для интерактивного содержимого. Ознакомьтесь со строкой заголовков в рекомендациях по проектированию Fluent, чтобы узнать, когда использовать высокую панель заголовков.
Известные ограничения:
- Поддержка высокой панели заголовков доступна только в Windows 11. Мы работаем над тем, чтобы уменьшить этот формат вместе с другими пользовательскими API панели заголовков.
WinUI 3
Исправленные проблемы:
- Исправлена проблема, из-за которой приложения C# с WebView2 завершались сбоем при запуске, когда среда выполнения C/C++ (CRT) не установлена путем обновления пакета SDK WebView2 с версии 1020.46 до 1185.39.
- Исправлена проблема, из-за которой некоторые округленные угловы отображали градиент, когда они должны быть сплошным цветом. Дополнительные сведения см . в выпуске 6076 и выпуске 6194 на сайте GitHub.
- Исправлена проблема, из-за которой обновленные стили отсутствуют из generic.xaml.
- Исправлена проблема с циклом макета, приводя к сбою приложения при прокрутке до конца ListView. Дополнительные сведения см . в статье 6218 на сайте GitHub.
Производительность
Приложения C# имеют несколько улучшений производительности. Дополнительные сведения см. в заметках о выпуске C#/WinRT 1.6.1.
Версия 1.1(предварительная версия 1) (1.1.0-preview1)
Это первый выпуск канала предварительной версии для версии 1.1. Она поддерживает все функции канала предварительной версии (см. сведения о функциях, доступных по каналу выпуска).
В существующем приложении с помощью пакета SDK для приложений Windows 1.0 можно обновить пакет Nuget до версии 1.1.0-preview1 (см. раздел "Обновление пакета" в Visual Studio и управление ими с помощью диспетчер пакетов NuGet). Кроме того, см. статью "Загрузки" для пакета SDK для приложений Windows для обновленной среды выполнения и MSIX.
В следующих разделах описываются новые и обновленные функции, ограничения и известные проблемы для этого выпуска.
WinUI 3
Известная проблема: пользователи не могут удалить элемент при включении перетаскивания.
Поддержка с повышенными привилегиями (администратор)
С помощью пакета SDK для приложений Windows 1.1 (предварительная версия 1) приложения (включая WinUI 3) смогут выполняться с повышенными привилегиями.
Важные ограничения
- Сейчас доступно только в Windows 11. Но мы оцениваем снижение этой поддержки в более позднем выпуске.
Известные проблемы
- При перетаскивании элемента во время взаимодействия с перетаскиванием приложений WinUI 3 происходит сбой.
Автономное развертывание
Пакет SDK для приложений Windows 1.1 предоставляет поддержку автономного развертывания. В обзоре развертывания подробно описаны различия между зависимым от платформы и автономным развертыванием, а также о том, как приступить к работе.
Известные проблемы:
Приложение C++, которое упаковано, должно добавить приведенный ниже файл проекта в нижней части файла проекта, чтобы обойти ошибку в автономном
.targets
файле, который удаляет ссылки платформы на VCLibs:<PropertyGroup> <IncludeGetResolvedSDKReferences>true</IncludeGetResolvedSDKReferences> </PropertyGroup> <Target Name="_RemoveFrameworkReferences" BeforeTargets="_ConvertItems;_CalculateInputsForGenerateCurrentProjectAppxManifest"> <ItemGroup> <FrameworkSdkReference Remove="@(FrameworkSdkReference)" Condition="'%(FrameworkSdkReference.SDKName)' == 'Microsoft.WindowsAppRuntime.1.1-preview1'" /> </ItemGroup> </Target>
Поддерживается только в Windows 10, 1903 и более поздних версиях.
Notifications
Разработчики упакованных (включая упакованные с внешним расположением) и распакованные приложения теперь могут отправлять уведомления Windows.
Новые функции:
- Поддержка уведомлений приложений для упакованных и распакованных приложений. Полные сведения о GitHub
- Разработчики могут отправлять уведомления приложений, также известные как всплывающие уведомления, локально или из собственной облачной службы.
- Поддержка push-уведомлений для упакованных и распакованных приложений. Полные сведения о GitHub
- Разработчики могут отправлять необработанные уведомления или уведомления приложений из собственной облачной службы.
Ограничения:
- Приложения, опубликованные как автономные, могут не поддерживать push-уведомления. Следите за следующим предварительным выпуском для API IsSupported, чтобы проверка для поддержки push-уведомлений.
- Приложения, которые распаковываются, отправляющие уведомления приложений, не будут отображать значок приложения в уведомлении о приложении, если они не являются консольными приложениями. Консольные приложения, которые распаковываются, должны соответствовать шаблонам, показанным в примере ToastNotificationsDemoApp .
- Среда выполнения пакета SDK для Приложений Windows должна быть установлена для поддержки push-уведомлений, см. статью "Загрузки пакета SDK для приложений Windows" для установщика.
- Приложение WinUI 3, которое не запущено, не может быть активировано в фоновом режиме с помощью уведомления. Но мы работаем над поддержкой этого в будущем выпуске.
Диспетчер среды
Набор API, позволяющий разработчикам добавлять, удалять и изменять переменные среды без необходимости напрямую использовать API реестра.
Новые функции
- Обеспечивает автоматическое удаление любых переменных среды при удалении приложения, использующее диспетчер среды.
Ограничения
- В настоящее время недоступно в приложениях C#. Но мы оцениваем эту функцию в приложения C# в более позднем выпуске.
Другие ограничения и известные проблемы
- Если вы используете C# с версией 1.1.0 (предварительная версия 1), необходимо использовать одну из следующих версий пакета SDK для .NET, как минимум: пакет SDK для .NET 6.0.201, 6.0.103, 5.0.212 или 5.0.406. Чтобы обновить пакет SDK для .NET, можно обновить до последней версии Visual Studio или скачать .NET.
Версия 1.0 Preview 3 (1.0.0-preview3)
Предварительная версия 3 — это последний выпуск канала предварительной версии для пакета SDK для приложений Windows версии 1.0. Предварительная версия 3 поддерживает все функции канала предварительной версии.
Скачивание расширений Visual Studio версии 1.0 (предварительная версия 3)
Примечание.
Если у вас уже установлены расширения Visual Studio для пакета SDK для Приложений Windows (VSIX), удалите их перед установкой новой версии. Инструкции см. в статье Управление расширениями для Visual Studio.
В таблице ниже можно скачать расширения Visual Studio (VSIX) для выпуска 1.0 ( предварительная версия 3). Сведения обо всех версиях см. в разделе "Скачивание" для пакета SDK для приложений Windows. Если вы еще этого не сделали, начните с настройки среды разработки, выполнив действия, описанные в разделе "Установка средств для пакета SDK для приложений Windows".
Приведенные ниже расширения предназначены для языка программирования и версии Visual Studio.
Скачивание 1.0 (предварительная версия 3) | Description |
---|---|
Расширение Visual Studio 2019 на C# | Создайте приложения C# с расширением Visual Studio 2019 для пакета SDK для приложений Windows. |
Расширение Visual Studio 2019 на C++ | Создание приложений C++ с помощью расширения Visual Studio 2019 для пакета SDK для приложений Windows. |
Расширение Visual Studio 2022 C# | Создание приложений C# с помощью расширения Visual Studio 2022 для пакета SDK для приложений Windows. |
Расширение Visual Studio 2022 на C++ | Создайте приложения C++ с расширением Visual Studio 2022 пакета SDK для приложений Windows. |
Пакеты установщика .exe и MSIX |
Разверните пакет SDK для приложений Windows с помощью установщика .exe и пакетов MSIX. |
В следующих разделах описываются новые и обновленные функции, ограничения и известные проблемы для версии 1.0 ( предварительная версия 3).
WinUI 3
Теперь мы поддерживаем развертывание приложений WinUI 3 без упаковки MSIX. См. статью "Создание первого проекта WinUI 3", чтобы настроить приложение WinUI 3 для поддержки распаковки развертывания.
Важные ограничения
- Непакованные приложения WinUI 3 поддерживаются только в Windows версии 1909 и более поздних версий.
- Непакованные приложения WinUI 3 поддерживаются в x86 и x64; поддержка arm64 будет добавлена в следующем стабильном выпуске.
- Средства упаковки MSIX для Visual Studio 2019 или Visual Studio 2022 требуются для распакованных приложений.
- В распаковке приложения может появиться запрос на установку .NET 3.5; Если вы это делаете, то его можно игнорировать.
- Некоторые API в настоящее время не поддерживаются в распакованных приложениях. Мы стремимся исправить это в следующем стабильном выпуске. Несколько примеров:
- ApplicationData
- служба хранилища File.GetFileFromApplicationUriAsync
- ApiInformation (не поддерживается в Windows 10)
- Package.Current
- Элементы управления ListView, CalendarView и GridView используют неправильные стили, и мы стремимся исправить это в следующем стабильном выпуске.
Дополнительные сведения о начале разработки с Помощью WinUI 3 см. в следующем разделе:
Другие ограничения и известные проблемы
Распаковка приложений не поддерживается в Windows 10 версии 1809. Мы стремимся исправить это в следующем выпуске в стабильном канале.
Однопроектное приложение MSIX C# не компилируется, если средства UWP на C++ не установлены. Если у вас есть проект MSIX для C# с одним проектом, вам потребуется установить дополнительный компонент C++ (v14x) универсальная платформа Windows Tools.
В этом выпуске представлены шаблоны проектов "Пустое приложение" (WinUI 3 в классическом приложении) для C# и C++. Эти шаблоны позволяют создавать приложение в пакет MSIX без использования отдельного проекта упаковки (см. раздел "Упаковка приложения с помощью единого проекта MSIX"). Эти шаблоны имеют некоторые известные проблемы в этом выпуске:
Отсутствует пункт меню публикации, пока не перезапустите Visual Studio. При создании приложения в Visual Studio 2019 и Visual Studio 2022 с помощью шаблона проекта "Пустое приложение" (WinUI 3 в классическом режиме) команда публикации проекта не отображается в меню, пока не закройте и снова не откройте Visual Studio.
Ошибка при добавлении проектов статической и динамической библиотеки C++ в приложения C++ с помощью пакета MSIX с одним проектом. Visual Studio отображает ошибку, которую проект нельзя добавить в качестве ссылки, так как типы проектов несовместимы.
Ошибка при ссылке на пользовательский элемент управления в проекте библиотеки классов. Приложение завершит работу с ошибкой, которую система не может найти указанный путь.
Шаблон C# или C++ для Visual Studio 2019. При попытке создать проект вы увидите сообщение об ошибке "Проект не знает, как запустить имя проекта профиля". Чтобы устранить эту проблему, установите расширение средств упаковки MSIX с одним проектом.
Шаблон C# для Visual Studio 2019 и Visual Studio 2022. В Visual Studio при запуске отладки или запуска без отладки, если приложение не развертывает и не запускается (и нет отзывов из Visual Studio), а затем щелкните узел проекта в Обозреватель решений, чтобы выбрать его, и повторите попытку.
Шаблон C# для Visual Studio 2019 и Visual Studio 2022. При попытке запуска или отладки проекта на компьютере разработки возникает следующая ошибка: "Перед отладкой проекта необходимо развернуть проект. Включите развертывание в Configuration Manager". Чтобы устранить эту проблему, включите развертывание проекта в Configuration Manager. Подробные инструкции см. в статье "Создание первого проекта WinUI 3".
Шаблон C++ для Visual Studio 2022 версии 17.0 до предварительной версии 4. При первом запуске проекта возникает следующая ошибка: "Произошли ошибки развертывания". Чтобы устранить эту проблему, запустите или разверните проект во второй раз. Эта проблема будет устранена в Visual Studio 2022 версии 17.0 ( предварительная версия 7).
Нет поддержки любой конфигурации сборки ЦП: при добавлении пакета SDK для приложений Windows к существующему приложению или компоненту .NET, поддерживающему любой ЦП, необходимо указать нужную архитектуру:
x86
x64
илиarm64
.Проекты C# с версией 1.0 (предварительная версия 3) должны использовать следующий пакет SDK для .NET: пакет SDK для .NET 6 или более поздней версии (см. статью "Скачать . NET и .NET 5" 10 мая 2022 г.).
Альтернативой DispatcherQueue.TryEnqueue (для возобновления выполнения в потоке очереди диспетчера) является использование вспомогательной функции resume_foreground в библиотеке реализации Windows (WIL):
- Добавьте ссылку на проект в пакет NuGet Microsoft.Windows.ImplementationLibrary .
- Добавьте
#include <wil/cppwinrt_helpers.h>
в свойpch.h
. - Добавьте
#include <winrt/Microsoft.UI.Dispatching.h>
в свойpch.h
. - Теперь
co_await wil::resume_foreground(your_dispatcherqueue);
.
Важные проблемы, влияющие на предварительную версию 1.0 и предварительную версию 2
Версия 1.0 ( предварительная версия 1 и предварительная версия 2) пакета SDK для приложений Windows включает механизм очистки любых изменений переменных среды, внесенных упакованным приложением при удалении этого приложения. Эта функция находится в экспериментальном состоянии, и первый выпуск содержит известную ошибку, которая может повредить переменную среды system PATH .
Предварительная версия 1 и предварительная версия 2 повреждены любой переменной среды PATH , содержащей символ %
расширения. Это происходит всякий раз, когда любое упаковаемое приложение удаляется независимо от того, использует ли это приложение пакет SDK для приложений Windows.
См. также проблему повреждения переменной среды PATH.
Сведения
Запись system PATH хранится в значении Path в следующем разделе реестра Windows:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
При запуске редактора реестра (), можно скопировать и вставить путь выше в панель навигации (regedit.exe
непосредственно под строкой меню) и нажать клавишу ВВОД, чтобы найти ключ.
Значение пути этого ключа должно иметь тип REG_EXPAND_SZ, но ошибка изменяет его на REG_SZ. И это делает системную переменную среды PATH непригодным для использования, если она содержит символ %
расширения переменной.
Затронутые выпуски
- Пакет SDK для приложений Windows 1.0 ( предварительная версия 1 (1.0.0-preview1)
- Пакет SDK для приложений Windows 1.0 (предварительная версия 2) (1.0.0-preview2)
Исправление
Чтобы вернуть компьютер в хорошее состояние, сделайте следующее:
Проверьте, поврежден ли PATH в реестре и, если да, сбросьте его, выполнив приведенный ниже скрипт.
Вы можете выполнить шаг 1 с помощью следующего скрипта Windows PowerShell (PowerShell Core не будет работать). Запустите его с повышенными привилегиями.
# This script must be run from an elevated Windows PowerShell # window (right-click Windows PowerShell in the Start menu, # and select Run as Administrator). # If the PATH in the Registry has been set to REG_SZ, then delete # it, and recreate it as REG_EXPAND_SZ. $EnvPath = 'Registry::HKLM\System\CurrentControlSet\Control\Session Manager\Environment' $Environment=Get-Item $EnvPath $PathKind = $Environment.GetValueKind('Path') if ($PathKind -ne 'ExpandString') { $Path = $Environment.GetValue('Path') Remove-ItemProperty $EnvPath -Name Path New-ItemProperty $EnvPath -Name Path -PropertyType ExpandString -Value $Path }
Удалите все приложения, использующие пакет SDK для приложений Windows 1.0 Preview1 или Preview2 (см. приведенный ниже сценарий).
Удалите пакеты Пакета SDK для приложений Windows 1.0 Preview1/Preview2, включая пакет, содержащий ошибку (см. приведенный ниже сценарий).
Вы можете выполнить шаги 2 и 3 с помощью следующего скрипта Windows PowerShell (PowerShell Core не будет работать). Запустите его с повышенными привилегиями.
# This script must be run from an elevated Windows PowerShell # window (right-click Windows PowerShell in the Start menu, # and select Run as Administrator). # Remove the Windows App SDK 1.0 Preview1/2, and all apps that use it. $winappsdk = "Microsoft.WindowsAppRuntime.1.0-preview*" Get-AppxPackage | Where-Object { $_.Dependencies -like $winappsdk } | Remove-AppxPackage Get-AppxPackage $winappsdk | Remove-AppxPackage
Исправление в пакете SDK для приложений Windows 1.0 (предварительная версия 3)
Функция, из-за которой переменная среды PATH была повреждена, будет удалена в предстоящем выпуске пакета SDK для приложений Windows 1.0 (предварительная версия 3). Это может быть повторно введено в более позднюю дату, когда все ошибки были исправлены и тщательно проверены.
Рекомендуется использовать версию 1.0 ( предварительная версия 3).
Версия 1.0 preview 2 (1.0.0-preview2)
Внимание
Версия 1.0( предварительная версия 1 и предварительная версия 2) содержит критически важную ошибку. Если вы уже установили одну из этих предварительных версий, узнайте , как устранить проблему. Вместо этого рекомендуется использовать версию 1.0 Preview 3 .
Это последний выпуск канала предварительной версии для версии 1.0. Она поддерживает все функции предварительного просмотра каналов.
В следующих разделах описываются новые и обновленные функции, ограничения и известные проблемы для этого выпуска.
WinUI 3
Новые обновления:
- Элементы управления были обновлены, чтобы отразить последние стили Windows из WinUI 2.6.
- Поддерживается msIX с одним проектом.
- Пакет WinUI 3 теперь может целевой сборки 17763 и более поздних версий. Дополнительные сведения см . в статье #921 .
- Панель инструментов в приложении поддерживается. Однако для панели инструментов в приложении и существующей поддержке Горячая перезагрузка/Динамического визуального дерева требуется предстоящий выпуск Visual Studio 17.0 Preview 5, доступный позже в октябре.
Исправлена ошибка: текст WebView2Runtime теперь локализован.
Дополнительные сведения или сведения о начале разработки с Помощью WinUI 3 см. в следующем разделе:
Оконное расширение
В этом выпуске представлены обновления класса AppWindow . В этом выпуске отсутствуют основные новые функции, но в этом выпуске были удалены изменения в именах методов, свойствах и некоторых возвращаемых значениях. Подробные обновления см. в документации и примерах. Если вы работали с AppWindow в выпусках 1.0 Experimental или 1.0 Preview 1, ожидают некоторые изменения в коде.
Новые обновления:
- Класс AppWindowConfiguration удален. Свойства этого класса теперь доступны в самом AppWindow или в классах докладчика .
- Большинство
bool
возвращаемых значений для методов API WinRT в этом пространстве было удалено и теперь,void
так как эти методы всегда будут успешными. - Вызовы ImportDll на C# больше не требуются для GetWindowIdFromWindow и GetWindowFromWindowId. Вместо этого используйте методы оболочки .NET, доступные в классе Microsoft.UI.Win32Interop.
Важные ограничения:
- Пакет SDK для приложений Windows в настоящее время не предоставляет методы для присоединения содержимого платформы пользовательского интерфейса к AppWindow. Кроме того, можно использовать методы доступа hWND.
- Настройка строки заголовка окна работает только в Windows 11. Используйте метод IsCustomizationSupported, чтобы проверка для поддержки функций настройки строки заголовка. Мы намерены уменьшить этот уровень функциональности.
Дополнительные сведения см. в разделе "Управление окнами приложений".
Входные данные
Новые обновления:
- Улучшена поддержка точного ввода сенсорной панели.
Важные ограничения:
- Все функции статической фабрики PointerPoint удалены: GetCurrentPoint, GetCurrentPointTransformed, GetIntermediatePoints и GetIntermediatePointsTransformed.
- Пакет SDK для приложений Windows не поддерживает извлечение объектов PointerPoint с идентификаторами указателей. Вместо этого можно использовать функцию-член PointerPoint GetTransformedPoint для получения преобразованной версии существующего объекта PointerPoint. Для промежуточных точек можно использовать функции-члены PointerEventArgs GetIntermediatePoints и GetTransformedIntermediatePoints. Дополнительные сведения см. в документации.
MRT Core
Новые обновления:
- Разработчики приложений теперь могут отказаться от индексирования файла образа или RESW-файла в файле PRI в проектах .NET. Дополнительные сведения см . в статье 980 .
Важные ограничения:
- В проектах .NET файлы ресурсов, скопированные в папку проекта, не индексируются на F5, если приложение уже создано. В качестве обходного решения перестройте приложение. Дополнительные сведения см . в статье 1503 .
- В проектах .NET существующие файлы ресурсов, добавленные из внешней папки, не индексируются без ручного задания действия сборки. Чтобы обойти эту проблему, задайте действие сборки в Visual Studio: содержимое для файлов изображений и PRIResource для RESW-файлов. Дополнительные сведения см. в статье 1504 .
Развертывание для распакованных приложений
Новые функции:
- Пакет SDK для приложений Windows 1.0 (предварительная версия 2) представляет оболочку .NET для API загрузчика (см. раздел "Использование среды выполнения пакета SDK для приложений Windows", упакованных с внешним расположением или распаковкой). API начального загрузчика — это набор собственных функций C/C++, которые должны использовать для динамического использования пакета пакета sdk для приложений Windows во время выполнения. Оболочка .NET упрощает вызов API загрузчика из приложений .NET, включая приложения Windows Forms и WPF. Оболочка .NET для API загрузчика доступна в сборке Microsoft.WindowsAppRuntime.Bootstrap.Net.dll, которая является локальной для проекта приложения. Дополнительные сведения о оболочке .NET см . в библиотеке оболочки .NET.
- Упакованные приложения теперь могут использовать API развертывания для получения основных и однотонных пакетов MSIX, установленных на компьютере. Основные и одноэлементные пакеты являются частью пакета платформы, установленного с приложением, но из-за ограничения модели приложений Windows упакованные приложения должны выполнить этот дополнительный шаг, чтобы установить эти пакеты. Дополнительные сведения о работе API развертывания см . в руководстве по развертыванию пакета SDK для приложений, зависящих от платформы.
Важные ограничения:
- Оболочка .NET только для API начальной загрузки предназначена только для использования распакованными приложениями .NET для упрощения доступа к пакету SDK для приложений Windows.
- Только упакованные приложения MSIX, которые являются полным доверием или имеют ограниченные возможности packageManagement , имеют разрешение на использование API развертывания для установки зависимостей основного и одноэлементного пакета. Поддержка упакованных приложений с частичным доверием будет поступать в последующих выпусках.
- При тестировании приложения x86, использующего метод DeploymentManager.Initialize в системе x64, убедитесь, что платформа x64 сначала установлена, выполнив WindowsAppRuntimeInstall.exe. В противном случае возникнет ошибка NOT_FOUND из-за того, что Visual Studio не развертывает платформу x64, которая обычно возникает при развертывании или загрузке неопубликованного хранилища.
Жизненный цикл приложения
Большинство функций жизненного цикла приложений уже существуют на платформе UWP и были добавлены в пакет SDK для приложений Windows для использования типами классических приложений, особенно распакованы консольные приложения, приложения Win32, приложения Windows Forms и приложения WPF. Реализация пакета SDK для приложений Windows не может использоваться в приложениях UWP, так как в самой платформе UWP существуют эквивалентные функции.
Приложения, отличные от UWP, также могут быть упакованы в пакеты MSIX. Хотя эти приложения могут использовать некоторые функции жизненного цикла приложений пакета SDK для Windows, они должны использовать подход манифеста, где это доступно. Например, они не могут использовать API-интерфейсы RegisterForXXXXActivation пакета SDK для Приложений Windows и должны зарегистрировать для расширенной активации с помощью манифеста.
Все ограничения для упакованных приложений также применяются к приложениям WinUI 3, которые упаковываются; и существуют дополнительные рекомендации, как описано ниже.
Важные сведения:
Расширенная активация: GetActivatedEventArgs
- Распаковка приложений: полностью доступные для использования.
- Упакованные приложения: Usable, но эти приложения также могут использовать платформу
GetActivatedEventArgs
. Обратите внимание, что платформа определяет Windows.ApplicationModel.AppInstance, а пакет SDK для приложений Windows определяет Microsoft.Windows.AppLifecycle.AppInstance. И хотя приложения UWP могут использовать классы, такие какFileActivatedEventArgs
иLaunchActivatedEventArgs
приложения, использующие функцию AppLifecycle пакета SDK для Windows, должны использоватьActivatedEventArgs
интерфейсы не классы (например,IFileActivatedEventArgs
иILaunchActivatedEventArgs
т. д.). - Приложения WinUI 3: приложение WinUI 3 App.OnLaunched предоставляется Microsoft.UI.Xaml.LaunchActivatedEventArgs, в то время как платформа
GetActivatedEventArgs
возвращает объект Windows.ApplicationModel.IActivatedEventArgs, а WindowsAppSDKGetActivatedEventArgs
возвращает объект Microsoft.Windows.AppLifecycle.AppActivationArguments, который может представлять платформуLaunchActivatedEventArgs
. - Дополнительные сведения см. в разделе "Расширенные возможности активации".
Регистрация и отмена регистрации для расширенной активации
- Распаковка приложений: полностью доступные для использования.
- Упакованные приложения: вместо этого не используется манифест MSIX приложения.
- Дополнительные сведения см. в разделе "Расширенные возможности активации".
Однократное или многоуровневое развертывание
- Распаковка приложений: полностью доступные для использования.
- Упакованные приложения: полностью доступные для использования.
- Приложения WinUI 3. Если приложение хочет обнаружить другие экземпляры и перенаправить активацию, оно должно сделать это как можно раньше и перед инициализацией любых окон и т. д. Чтобы включить это, приложение должно определить DISABLE_XAML_GENERATED_MAIN и написать настраиваемый main (C#) или WinMain (C++), где он может выполнять обнаружение и перенаправление.
- RedirectActivationToAsync — это асинхронный вызов, и вы не должны ожидать асинхронного вызова, если приложение работает в STA. Для приложений Windows Forms и C# WinUI 3 при необходимости можно объявить Main асинхронным. Для приложений WINUI 3 и C# WPF C++ нельзя объявить Main асинхронным, поэтому вместо этого необходимо переместить вызов перенаправления в другой поток, чтобы не блокировать sta.
- Дополнительные сведения см. в разделе "Подключение приложений".
Уведомления о power/State
- Распаковка приложений: полностью доступные для использования.
- Упакованные приложения: полностью доступные для использования.
- Дополнительные сведения см. в разделе "Управление питанием".
Известная проблема.
Сопоставления типов файлов неправильно кодируют %1 в %251 при настройке шаблона командной строки обработчика команд команды, который завершает работу распаковки приложений Win32. Вы можете вручную изменить значение реестра, чтобы он был %1 вместо этого в качестве частичного обходного решения. Если целевой путь к файлу имеет место в нем, он по-прежнему завершится ошибкой, и для этого сценария нет обходного решения.
Другие ограничения и известные проблемы
Версия 1.0( предварительная версия 1 и предварительная версия 2) содержит критически важную ошибку. Если вы уже установили одну из этих предварительных версий, узнайте , как устранить проблему. Вместо этого рекомендуется использовать версию 1.0 Preview 3 .
В этом выпуске представлены шаблоны пустых приложений, упакованных (WinUI 3 в desktop) для проектов C# и C++. Эти шаблоны позволяют создавать приложение в пакет MSIX без использования отдельного проекта упаковки. Эти шаблоны имеют некоторые известные проблемы в этом выпуске:
Шаблон C# для Visual Studio 2019. При попытке создать проект возникает ошибка: "Проект не знает, как запустить имя проекта профиля". Чтобы устранить эту проблему, установите расширение средств упаковки MSIX с одним проектом.
Шаблон C# для Visual Studio 2019 и Visual Studio 2022. При попытке запуска или отладки проекта на компьютере разработки возникает следующая ошибка: "Перед отладкой проекта необходимо развернуть проект. Включите развертывание в Configuration Manager". Чтобы устранить эту проблему, включите развертывание проекта в Configuration Manager. Подробные инструкции см. в статье "Создание первого проекта WinUI 3".
Шаблон C++ для Visual Studio 2019 и Visual Studio 2022. В этом выпуске эти проекты ограничены вызовом подмножества API Win32, которые могут вызываться приложениями UWP. Пустое приложение, упаковаемое с помощью шаблона WAP (WinUI 3 в desktop), не влияет на эту проблему.
Шаблон C++ для Visual Studio 2022 версии 17.0 до предварительной версии 4. При первом запуске проекта возникает следующая ошибка: "Произошли ошибки развертывания". Чтобы устранить эту проблему, запустите или разверните проект во второй раз. Эта проблема будет исправлена в Visual Studio 2022 17.0 (предварительная версия 5).
API push-уведомлений (пространство имен Microsoft.Windows.PushNotifications) неправильно включены в выпуск 1.0 Preview 2. Это по-прежнему экспериментальная функция, и для ее использования необходимо установить экспериментальный выпуск версии 1.0. Эта функция будет удалена из предстоящего выпуска версии 1.0.
API жизненного цикла приложения (пространство имен Microsoft.Windows.AppLifecycle) неправильно включает экспериментальный атрибут в выпуске 1.0 Preview 2. Экспериментальный атрибут будет удален из этого API в следующем выпуске.
Нет поддержки любой конфигурации сборки ЦП: при добавлении пакета SDK для приложений Windows к существующему приложению или компоненту .NET, поддерживающему любой ЦП, необходимо указать нужную архитектуру:
x86
x64
илиarm64
.Проекты C# с версией 1.0 (предварительная версия 2) должны использовать следующий пакет SDK для .NET: пакет SDK для .NET 6 или более поздней версии (см. статью "Скачать . NET и .NET 5" 10 мая 2022 г.).
Альтернативой DispatcherQueue.TryEnqueue (для возобновления выполнения в потоке очереди диспетчера) является использование вспомогательной функции resume_foreground в библиотеке реализации Windows (WIL):
- Добавьте ссылку на проект в пакет NuGet Microsoft.Windows.ImplementationLibrary .
- Добавьте
#include <wil/cppwinrt_helpers.h>
в свойpch.h
. - Добавьте
#include <winrt/Microsoft.UI.Dispatching.h>
в свойpch.h
. - Теперь
co_await wil::resume_foreground(your_dispatcherqueue);
.
Версия 1.0 Preview 1 (1.0.0-preview1)
Внимание
Версия 1.0( предварительная версия 1 и предварительная версия 2) содержит критически важную ошибку. Если вы уже установили одну из этих предварительных версий, узнайте , как устранить проблему. Вместо этого рекомендуется использовать версию 1.0 Preview 3 .
Это первый выпуск канала предварительной версии для версии 1.0. Она поддерживает все функции предварительного просмотра каналов.
В следующих разделах описываются новые и обновленные функции, ограничения и известные проблемы для этого выпуска.
WinUI 3
Этот выпуск WinUI 3 ориентирован на создание до версии 1.0 с исправлениями ошибок.
- Новые возможности: новые функции в предварительной версии 1 отсутствуют.
- Исправлены проблемы: полный список проблем, которые устранены в этом выпуске, см . в репозитории GitHub.
Дополнительные сведения или сведения о начале разработки с Помощью WinUI 3 см. в следующем разделе:
Оконное расширение
В этом выпуске API окон, который мы представили в экспериментальном 1, в состоянии предварительной версии. В этом выпуске нет основных новых возможностей, так как он ориентирован на исправления ошибок, стабильность и корректировки подписи API. Примечательными изменениями и дополнениями являются приведенные ниже.
Новые функции:
- DisplayAreaWatcher добавлен в API окон. Это позволяет разработчику наблюдать за изменениями в топологии отображения и перечислять DisplayAreas в настоящее время, определенные в системе.
- AppWindow теперь поддерживает настройку значка окна с помощью метода SetIcon, а AppWindowTitleBar теперь поддерживает выбор того, следует ли отображать и скрывать значок окна вместе с системным меню через свойство IconShowOptions.
Важные ограничения:
- В настоящее время этот выпуск AppWindow доступен только для приложений Win32 (упакованных и распакованных).
- Пакет SDK для приложений Windows в настоящее время не предоставляет методы для присоединения содержимого платформы пользовательского интерфейса к AppWindow. Кроме того, можно использовать методы доступа hWND.
- Настройка строки заголовка окна работает только в Windows 11. Используйте метод IsCustomizationSupported, чтобы проверка для поддержки функций настройки строки заголовка. Мы намерены уменьшить этот уровень функциональности.
Дополнительные сведения см. в разделе "Управление окнами приложений".
Входные данные
В этом выпуске представлены некоторые новые функции в API ввода. Примечательными изменениями и дополнениями являются приведенные ниже.
Новые функции и обновления:
- PointerPredictor позволяет приложениям с учетом задержки ввода, таким приложениям рукописного ввода, прогнозировать расположения точек ввода до 15 мс в будущем, чтобы добиться лучшей задержки и плавной анимации.
- PenDeviceInterop позволяет получить ссылку на Windows.Devices.Input.PenDevice с помощью метода FromPointerPoint .
- InputCursor обеспечивает явное различие между предустановленными системными типами курсоров и пользовательскими типами курсоров, удаляя тип Custom, представленный в
CoreCursor
, и разделяяCoreCursor
объект на отдельные объекты. - ОбновленияAPI-интерфейсы InputCursor.
- ЖестRecognizer перемещен из экспериментального объекта в Microsoft.UI.Input.
- PointerPoint перемещен из экспериментального объекта в Microsoft.UI.Input.
- Ввод мыши, касания и пера полностью поддерживается для перетаскивания и перетаскивания WinUI 3.
Важные ограничения:
- Этот выпуск ИНТЕРФЕЙСов API ввода имеет известные проблемы с Windows версии 1809.
- MRT Core пока не поддерживается любым подтипом InputCursor.
- Прямое использование API пакета SDK платформы Windows.UI.CoreDragOperation не будет работать с приложениями WinUI 3.
- Свойства PointerPoint RawPosition и ContactRectRaw были удалены, так как они ссылались на непрогнозируемые значения, которые совпадали с обычными значениями в ОС. Вместо этого используйте Position и ContactRect . Прогнозирование указателя теперь обрабатывается с помощью объекта API Microsoft.UI.Input.PointerPredictor.
MRT Core
Начиная с версии 1.0 (предварительная версия 1), API-интерфейсы MRT Core перемещены из пространства имен Microsoft.ApplicationModel.Resources в пространство имен Microsoft.Windows.ApplicationModel.Resources.
Другие ограничения и известные проблемы
Версия 1.0( предварительная версия 1 и предварительная версия 2) содержит критически важную ошибку. Если вы уже установили одну из этих предварительных версий, узнайте , как устранить проблему. Вместо этого рекомендуется использовать версию 1.0 Preview 3 .
Проекты, созданные с помощью пустого приложения C++, упакованные с шаблоном проекта WAP (WinUI 3 в desktop), по умолчанию сталкиваются со следующей ошибкой сборки:
fatal error C1083: Cannot open include file: 'winrt/microsoft.ui.dispatching.co_await.h': No such file or directory
Чтобы устранить эту проблему, удалите следующую строку кода из pch.h-файла . Эта проблема будет устранена в следующем выпуске.#include <winrt/microsoft.ui.dispatching.co_await.h>
Альтернативой DispatcherQueue.TryEnqueue (для возобновления выполнения в потоке очереди диспетчера) является использование вспомогательной функции resume_foreground в библиотеке реализации Windows (WIL):
- Добавьте ссылку на проект в пакет NuGet Microsoft.Windows.ImplementationLibrary .
- Добавьте
#include <wil/cppwinrt_helpers.h>
в свойpch.h
. - Добавьте
#include <winrt/Microsoft.UI.Dispatching.h>
в свойpch.h
. - Теперь
co_await wil::resume_foreground(your_dispatcherqueue);
.
Нет поддержки любой конфигурации сборки ЦП: пакет SDK для приложений Windows написан в машинном коде и поэтому не поддерживает конфигурации сборки ЦП . Шаблоны WinUI 3 в Visual Studio разрешают только сборки, относящиеся к архитектуре. При добавлении пакета SDK для приложений Windows в существующее приложение или компонент .NET, поддерживающее любой ЦП, необходимо указать нужную архитектуру:
x86
x64
илиarm64
.Приложения .NET должны быть предназначены для сборки 18362 или более поздней версии: TFM должен иметь или более поздней версии, а проект
<TargetPlatformVersion>
упаковки должен иметьnet6.0-windows10.0.18362
значение 18362 или более поздней версии. Дополнительные сведения см. в статье об известной проблеме на сайте GitHub.Проекты C# с версией 1.0 (предварительная версия 1) должны использовать следующий пакет SDK для .NET: пакет SDK для .NET 6 или более поздней версии (см. статью "Скачать . NET и .NET 5" 10 мая 2022 г.).
Неупакованные приложения не поддерживаются в Windows 10 версии 1809: это необходимо устранить в следующем выпуске.
См. также
Windows developer
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по