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

Внимание

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

Канал предварительной версии предоставляет предварительную версию следующего предстоящего стабильного выпуска. В период между выпуском предварительной и следующей стабильной версий могут быть реализованы критические изменения API. Предварительные выпуски каналов не включают экспериментальные API.

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

Версия 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 при наличии.

Элемент управления Карты 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.
  • Исправлена проблема, влияющая на выравнивание текста в пределах MenuFlyoutItemMenuBar. Дополнительные сведения см. в статье о проблеме 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 элементам управления, но создается с помощью ItemsRepeaterScrollViewItemContainer компонентов и ItemCollectionTransitionProvider компонентов. Он предлагает уникальную возможность подключать пользовательские Layout или ItemCollectionTransitionProvider реализации. Еще одним ключевым преимуществом является возможность переключения макета во время сохранения выделения элементов. Внутренний ScrollView элемент управления также предлагает функции, недоступные в ScrollViewerListView/GridViewэлементе управления, например возможность управления анимацией во время программных прокрутк.
    • Новое свойство ItemsRepeater (и новый ItemTransitionProviderItemsView элемент управления) позволяет указать 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>.
  • 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 , если приложение повышено.

Известные ограничения (уведомления)

  • В AppNotificationScenarioUrgent поддерживается только для сборок Windows 19041 и более поздних версий. Вы можете использовать AppNotificationBuilder.IsUrgentScenarioSupported, чтобы проверка, доступна ли функция во время выполнения.
  • В AppNotificationButtonhint-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.
  • Для приложений .NET, которые не развертываются с одним проектом MSIX:
    • Если файл добавляется в группу содержимого ItemGroup дважды или более, произойдет ошибка сборки.
      • Обходной путь. Удалите повторяющееся включение/с или задайте для EnableDefaultContentItems значение false в файле проекта.

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

Версия 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. Чтобы избежать утечки значков, разработчик должен вручную удалить значок приложения по неправильному пути после обновления до следующего выпуска.
  • Значок приложения и получение отображаемого имени приложения для уведомлений с помощью ярлыков не поддерживается. Но мы работаем над поддержкой этого в будущем выпуске.

Развертывание

Новые функции:

Известные ограничения:

  • Автономное развертывание поддерживается только в 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 в настоящее время не поддерживаются в распакованных приложениях. Мы стремимся исправить это в следующем стабильном выпуске. Несколько примеров:
  • Элементы управления 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, поддерживающему любой ЦП, необходимо указать нужную архитектуру: x86x64 или arm64.

  • Проекты C# с версией 1.0 (предварительная версия 3) должны использовать следующий пакет SDK для .NET: пакет SDK для .NET 6 или более поздней версии (см. статью "Скачать . NET и .NET 5" 10 мая 2022 г.).

  • Альтернативой DispatcherQueue.TryEnqueue (для возобновления выполнения в потоке очереди диспетчера) является использование вспомогательной функции resume_foreground в библиотеке реализации Windows (WIL):

    1. Добавьте ссылку на проект в пакет NuGet Microsoft.Windows.ImplementationLibrary .
    2. Добавьте #include <wil/cppwinrt_helpers.h> в свой pch.h.
    3. Добавьте #include <winrt/Microsoft.UI.Dispatching.h> в свой pch.h.
    4. Теперь 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 непригодным для использования, если она содержит символ %расширения переменной.

Затронутые выпуски

Исправление

Чтобы вернуть компьютер в хорошее состояние, сделайте следующее:

  1. Проверьте, поврежден ли 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
    }
    
  2. Удалите все приложения, использующие пакет SDK для приложений Windows 1.0 Preview1 или Preview2 (см. приведенный ниже сценарий).

  3. Удалите пакеты Пакета 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, чтобы проверка для поддержки функций настройки строки заголовка. Мы намерены уменьшить этот уровень функциональности.

Дополнительные сведения см. в разделе "Управление окнами приложений".

Входные данные

Новые обновления:

  • Улучшена поддержка точного ввода сенсорной панели.

Важные ограничения:

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

  • Регистрация и отмена регистрации для расширенной активации

    • Распаковка приложений: полностью доступные для использования.
    • Упакованные приложения: вместо этого не используется манифест 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, поддерживающему любой ЦП, необходимо указать нужную архитектуру: x86x64 или arm64.

  • Проекты C# с версией 1.0 (предварительная версия 2) должны использовать следующий пакет SDK для .NET: пакет SDK для .NET 6 или более поздней версии (см. статью "Скачать . NET и .NET 5" 10 мая 2022 г.).

  • Альтернативой DispatcherQueue.TryEnqueue (для возобновления выполнения в потоке очереди диспетчера) является использование вспомогательной функции resume_foreground в библиотеке реализации Windows (WIL):

    1. Добавьте ссылку на проект в пакет NuGet Microsoft.Windows.ImplementationLibrary .
    2. Добавьте #include <wil/cppwinrt_helpers.h> в свой pch.h.
    3. Добавьте #include <winrt/Microsoft.UI.Dispatching.h> в свой pch.h.
    4. Теперь 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. Примечательными изменениями и дополнениями являются приведенные ниже.

Новые функции:

Важные ограничения:

  • В настоящее время этот выпуск 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):

    1. Добавьте ссылку на проект в пакет NuGet Microsoft.Windows.ImplementationLibrary .
    2. Добавьте #include <wil/cppwinrt_helpers.h> в свой pch.h.
    3. Добавьте #include <winrt/Microsoft.UI.Dispatching.h> в свой pch.h.
    4. Теперь co_await wil::resume_foreground(your_dispatcherqueue);.
  • Нет поддержки любой конфигурации сборки ЦП: пакет SDK для приложений Windows написан в машинном коде и поэтому не поддерживает конфигурации сборки ЦП . Шаблоны WinUI 3 в Visual Studio разрешают только сборки, относящиеся к архитектуре. При добавлении пакета SDK для приложений Windows в существующее приложение или компонент .NET, поддерживающее любой ЦП, необходимо указать нужную архитектуру: x86x64 или 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: это необходимо устранить в следующем выпуске.