Поделиться через


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

Это важно

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

Канал предварительной версии включает выпуски пакета SDK для приложений Windows с функциями предварительной версии канала на поздних этапах разработки. Предварительные версии не включают экспериментальные функции и API, но могут по-прежнему подвергаться критическим изменениям до следующего стабильного выпуска.

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

Последний релиз канала предварительного просмотра:

Последняя версия стабильного канала:

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

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

В существующем приложении Windows App SDK 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 элемент управления также предлагает функции, недоступные в ListView/GridViewScrollViewerэлементе управления, например возможность управления анимацией во время программных прокрутк.
    • Новое свойство ItemTransitionProvider на ItemsRepeater (и новый элемент управления 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, и IsClosed были добавлены к DesktopAcrylicController и MicaController для улучшения обработки во время завершения работы объекта или потока.
  • DesktopAcrylicController.Kind теперь можно выбрать один из стандартных акриловых внешних эффектов.
  • DispatcherQueue включает новые события и вспомогательные средства для упрощения более упорядоченного завершения работы и для приложений, использующих Islands, чтобы легко начать стандартный поддерживаемый цикл событий.
  • 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.

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

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

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

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

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

  • Новый класс ThemeSettings, позволяющий приложениям Win32 WinRT обнаруживать изменение параметра высокой контрастности системы, аналогично классу Специальных возможностей UWP. Дополнительные сведения см. в спецификации API ThemeSettings на сайте GitHub.
  • Popup/FlyoutBase.ShouldConstrainToRootBounds теперь поддерживается, что позволяет подсказкам, меню и другим всплывающим окнам выходить за пределы основного окна. Предварительная версия 1 еще не полностью поддерживает акрил или другие системные фоны во всплывающем меню; дополнительные 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