Notas de la versión del canal de versión preliminar para el SDK de Aplicaciones para Windows 1.4

Importante

El canal de versión preliminar no es compatible para el uso en entornos de producción, y las aplicaciones que utilizan las versiones preliminares no se pueden publicar en Microsoft Store.

El canal de versión preliminar incluye versiones del SDK de Aplicaciones para Windows con características del canal de versión preliminar en fases tardías de desarrollo. Las versiones preliminares no incluyen características experimentales y API, pero pueden estar sujetas a cambios importantes antes de la próxima versión estable.

Vínculos importantes:

Versión del canal de versión preliminar más reciente:

Versión del canal estable más reciente:

Versión 1.4, Preview 2 (1.4.0-preview2)

Esta es la versión más reciente del canal de versión preliminar para la versión 1.4.

En una aplicación existente del SDK de Aplicaciones para Windows 1.3 (del canal estable), puede actualizar el paquete NuGet a la versión 1.4.0-preview2 (consulte la sección Actualización de un paquete en Instalación y administración de paquetes en Visual Studio mediante el Administrador de paquetes NuGet).

Para obtener actualizaciones del entorno de ejecución y MSIX, consulte Descargas del SDK de aplicaciones de Windows más reciente.

Islas XAML ya no es experimental.

Las islas XAML y la plataforma ContentIslands subyacente ya no son experimentales.

  • Actualmente, las islas XAML solo se prueban para su uso en aplicaciones de C++. Esta versión no incluye ningún elemento contenedor conveniente para su uso en WPF o WinForms.
  • DesktopWindowXamlSource y los tipos relacionados se han agregado en el espacio de nombres Microsoft.UI.Xaml.Hosting para islas XAML. XamlRoot.ContentIslandEnvironment se agregó para ayudar a acceder a la información subyacente de la isla para un elemento.
  • Se han introducido muchos tipos nuevos en el espacio de nombres Microsoft.UI.Content y en el espacio de nombres Microsoft.UI.Input como compatibilidad subyacente para islas XAML o para utilizar esta funcionalidad ContentIslands sin XAML.
  • Se ha agregado un nuevo DragDropManager (más tipos relacionados) en el espacio de nombres Microsoft.UI.Input.DragDrop para escenarios de isla.

Actualizaciones de ItemsView

La nueva clase ItemsView, que se introdujo en la versión 1.4-preview1, se ha actualizado sustancialmente con las nuevas propiedades y una nueva clase auxiliar.

  • El nuevo control ItemsView muestra una colección de datos. ItemsView es similar a los controles ListView y GridView, pero se compila utilizando los componentes ItemsRepeater, ScrollView, ItemContainer y ItemCollectionTransitionProvider. Ofrece la capacidad única de conectar implementaciones Layout o ItemCollectionTransitionProvider personalizadas. Otra ventaja clave es la capacidad de cambiar el diseño sobre la marcha mientras se conserva la selección de elementos. El control interno ScrollView también ofrece características no disponibles en el control ScrollViewerde ListView/GridView, como la capacidad de controlar la animación durante los desplazamientos mediante programación.
    • Una nueva propiedad ItemTransitionProvider en ItemsRepeater (y el nuevo control ItemsView) permite especificar un objeto ItemCollectionTransitionProvider para controlar las animaciones de transición en ese control. También se ha agregado un método CreateDefaultItemTransitionProvider a Layout, que permite que un objeto de diseño proporcione una transición de reserva que lo acompañe si no se proporciona una explícitamente en el control ItemsView.
    • Una nueva propiedad IndexBasedLayoutOrientation sobre Layout en la que la orientación del diseño, si existe, de los elementos se basa en su índice en la colección de origen. El valor predeterminado es IndexBasedLayoutOrientation.None. Los diseños personalizados establecen esta propiedad llamando al nuevo método SetIndexBasedLayoutOrientation (protegido).
    • Una nueva VisibleRect propiedad en VirtualizingLayoutContext obtiene el rectángulo de ventanilla visible dentro del FrameworkElement asociado a Layout. El método virtual VirtualizingLayoutContext.VisibleRectCore protegido se puede invalidar para proporcionar el valor que se devolverá de la propiedad VisibleRect.
  • La nueva clase LinedFlowLayout se usa normalmente para diseñar los elementos del control de colección ItemsView. Es especialmente útil para mostrar la colección de imágenes. Para ello, los coloca de izquierda a derecha y arriba abajo, en líneas de igual altura. Las imágenes llenan una línea horizontal y pasan a la siguiente. Las imágenes pueden recortarse por los bordes izquierdo y derecho para que quepan en una línea. También pueden expandirse horizontalmente y recortarse en los bordes superior e inferior para rellenar una línea cuando se emplea el modo de extensión.

Nuevas características y actualizaciones de WinAppSDK

  • Popup/FlyoutBase.IsConstrainedToRootBounds = false ahora se admite, lo que permite que un elemento emergente o control flotante se extienda fuera de los límites de la ventana primaria. Se ha agregado una propiedad SystemBackdrop a estos tipos para poder tener acrílicos en estas ventanas emergentes sin restricciones. Los menús usan esto de forma predeterminada para tener acrílico.
  • Closed, FrameworkClosed, y IsClosed se han agregado a DesktopAcrylicController y MicaController para mejorar el control durante el apagado de objetos o subprocesos.
  • DesktopAcrylicController.Kind ahora se puede establecer para elegir entre algunas apariencias acrílicas estándar.
  • DispatcherQueue tiene algunos nuevos eventos y asistentes para facilitar un cierre mejor organizado y para que las aplicaciones que utilizan Islas puedan ejecutar fácilmente un bucle de eventos estándar compatible.
  • InputNonClientPointerSource en el espacio de nombres Microsoft.UI.Input se puede utilizar para escenarios personalizados de barra de título para definir regiones de área que no sean cliente. El código puede registrarse para los eventos correspondientes, como los eventos "mantener el puntero y hacer clic" en eventos en estas regiones.
  • AppWindow tiene algunos nuevos asistentes para conseguir y asociar con un DispatcherQueue.
  • El nuevo evento TreeView.SelectionChanged permite a los desarrolladores responder cuando el usuario o el código subyacente cambian el conjunto de nodos seleccionados en el control TreeView.
  • El nuevo ScrollViewcontrol proporciona una nueva alternativa a ScrollViewer. Este nuevo control está muy alineado en cuanto al funcionamiento y la API con el control existente ScrollViewer, pero se basa en InteractionTracker, tiene nuevas características, como cambios de vista controladas por animaciones, y también está diseñado para garantizar la funcionalidad completa de ItemsRepeater. Vea Un ScrollViewer más flexible; incidencia n.º 108 microsoft/microsoft-ui-xaml (github.com) para obtener más detalles. Varios tipos nuevos, incluidos ScrollPresenter, forman parte del modelo general ScrollView.
  • El nuevo control AnnotatedScrollBar amplía la funcionalidad de una barra de desplazamiento normal proporcionando una manera fácil de navegar por una gran colección de elementos. Esto se logra a través de un raíl en el que se puede hacer clic con etiquetas que actúan como marcadores. También permite una comprensión más detallada del contenido desplazable mostrando información sobre herramientas al mantener el puntero sobre el raíl en el que se puede hacer clic.

Nuevas API en 1.4.0-preview2

La versión 1.4-preview2 incluye las siguientes API nuevas en comparación con la versión 1.4-preview1 anterior:

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

Versión 1.4, Preview 1 (1.4.0-preview1)

Esta es la versión más reciente del canal de versión preliminar para la versión 1.4.

En una aplicación existente del SDK de Aplicaciones para Windows 1.3 (del canal estable), puede actualizar el paquete NuGet a la versión 1.4.0-preview1 (consulte la sección Actualización de un paquete en Instalación y administración de paquetes en Visual Studio mediante el Administrador de paquetes NuGet).

Para obtener actualizaciones del entorno de ejecución y MSIX, consulte Descargas del SDK de aplicaciones de Windows más reciente.

Actualizaciones de widgets

Se han añadido tres nuevas interfaces para que las implementen los proveedores de widgets: IWidgetProvider2, IWidgetProviderAnalytics y IWidgetProviderErrors. IWidgetProvider2 permite a los proveedores responder a la acción Personalizar invocada por el usuario, que es idéntica a la disponible para los widgets de 1ª parte. Los proveedores usan las IWidgetProviderAnalytics interfaces y IWidgetProviderErrors para recopilar datos de telemetría para sus widgets; los análisis y los eventos de error sobre los widgets se comunican a los respectivos proveedores de widgets. Las clases WidgetCustomizationRequestedArgs, WidgetAnalyticsInfoReportedArgs y WidgetErrorInfoReportedArgs se utilizan para comunicar información pertinente para admitir nuevas funcionalidades.

Nuevas características de WinAppSDK

  • Una nueva clase ThemeSettings que permite a las aplicaciones Win32 WinRT detectar cuándo ha cambiado la configuración de alto contraste del sistema, similar a la clase AccessibilitySettings de UWP. Consulte la especificación de la API ThemeSettings en GitHub para obtener más información.
  • Popup/FlyoutBase.ShouldConstrainToRootBounds ahora se admite para permitir que la información sobre herramientas, los menús y otros elementos emergentes se extiendan fuera de los límites de la ventana principal. La versión preliminar 1 aún no admite completamente tener acrílico u otros SystemBackdrops en un menú emergente o control flotante; en la próxima versión 1.4 se incluirán API e implementaciones adicionales para esto.
  • AccessKeyManager.EnterDisplayMode es un nuevo método para mostrar claves de acceso para el elemento enfocado actual de una raíz proporcionada. Las teclas de acceso están en "modo de visualización" al mostrar una sugerencia de teclas para invocar un comando, como presionar la tecla Alt en Paint para mostrar qué teclas corresponden a qué controles. Este método permite entrar mediante programación en el modo de visualización.
  • Application.ResourceManagerRequested proporciona un mecanismo para proporcionar un valor diferente IResourceManager para resolver los URI de recursos en escenarios en los que el valor predeterminado ResourceManager no funcionará. Para obtener más información, consulte la especificación de la API Application.ResourceManagerRequested en GitHub.
  • Vamos a introducir un nuevo control de lista denominado y ItemsView una clase concreta ItemContainer correspondiente. ItemContainer es un contenedor ligero con estados de selección y objetos visuales integrados, que pueden ajustar fácilmente el contenido deseado y usarse con ItemsView para un escenario de control de colección. ItemsView todavía está marcado como experimental en la versión preliminar 1, pero se incluirá en la próxima versión 1.4.
  • La versión del SDK de WebView2 se actualizó de 1661.34 a 1823.32.

Nuevas API en 1.4.0-preview1

La versión 1.4-preview1 incluye las siguientes API nuevas en comparación con la versión estable 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