Anteprima note di rilascio del canale sperimentale di Windows App SDK

Importante

Il canale anteprima non è supportato per l'uso negli ambienti di produzione e le app che utilizzano i rilasci sperimentali non possono essere pubblicati nel Microsoft Store.

Il canale di anteprima fornisce un'anteprima della successiva versione stabile in arrivo. Potrebbero esserci modifiche che causano un'interruzione delle API tra una determinata versione del canale in anteprima e la versione stabile successiva. Le versioni del canale di anteprima non includono API sperimentali.

Collegamenti importanti:

Versione 1.5 Preview 1 (1.5.0-preview1)

Questa è l'ultima versione del canale di anteprima per la versione 1.5.

In un'app esistente di Windows App SDK 1.4 (dal canale stabile) è possibile aggiornare il pacchetto Nuget alla versione 1.5.0-preview1 (vedere la sezione Aggiorna un pacchetto in Installazione e gestione pacchetti in Visual Studio usando il Gestione pacchetti NuGet).

Per il runtime e l'MSIX aggiornati, vedere anche Download per il Windows App SDK.

Aggiornamenti di runtime e arresto delle isole XAML

  • Esiste una differenza comportamentale tra WinAppSDK 1.4 e WinAppSDK 1.5 per le app basate sulle isole Xaml quando viene chiusa l'ultima finestra Xaml su qualsiasi thread.
    • In WinAppSDK 1.4 il runtime Xaml esce sempre dal ciclo di eventi del thread quando viene chiusa l'ultima finestra Xaml di un thread.
    • In WinAppSDK 1.5:
      • Se l'app è un'app Desktop WinUI, il comportamento predefinito è sempre uguale a quello di WinAppSDK 1.4.
      • Se si utilizza Xaml per l'API DesktopWindowXamlSource ("Isole Xaml"), il comportamento predefinito prevede che Xaml non esca automaticamente dal ciclo di eventi del thread.
      • In entrambe le modalità è possibile modificare questo comportamento impostando la proprietà Application.DispatcherShutdownMode.
    • Per altre informazioni, vedere la documentazione relativa alla Application.DispatcherShutdownMode proprietà quando disponibile.
  • Esiste una differenza comportamentale tra WinAppSDK 1.4 e WinAppSDK 1.5 per le app basate su isole Xaml nella durata del runtime Xaml:
    • In WinAppSDK 1.4 il runtime XAML si arresta su un thread se tutti gli WindowsXamlManager e gli DesktopWindowXamlSource oggetti in un determinato thread vengono chiusi o arrestati oppure DispatcherQueue l'esecuzione su tale thread viene arrestata (in questo caso il runtime Xaml si arresta durante la DispatcherQueue.FrameworkShutdownStarting fase).
    • In WinAppSDK 1.5 il runtime Xaml si arresta su un thread solo quando DispatcherQueue in esecuzione su tale thread viene arrestato (il runtime Xaml viene sempre arrestato durante la DispatcherQueue.FrameworkShutdownStarting fase).
    • Per altre informazioni, vedere la documentazione relativa alla WindowsXamlManager classe quando disponibile.

Controllo Mappe WinUI

La versione iniziale del controllo WinUI Maps è ora disponibile. Questo controllo è basato su WebView2 e Mappe di Azure, fornendo le seguenti funzionalità:

  • Panoramica e zoom con i pulsanti della mappa o il tocco.
  • Modifica dello stile della mappa in visualizzazione satellite, terreno o strada.
  • Aggiunta a livello di codice di pin interagendo con icone personalizzabili dallo sviluppatore alla mappa.
  • Personalizzazione dello sviluppatore per la posizione in cui la mappa è centrata sul carico iniziale.
  • Controllare per gli sviluppatori di nascondere o visualizzare i pulsanti per la panoramica, lo zoom e gli stili della mappa.

Nota

Per usare il Maps controllo, è necessario un tasto Mappe di Azure. Per creare la chiave, vedere la pagina della documentazione Mappe di Azure per la creazione di un'app Web.

Il Maps controllo è completamente nuovo e siamo lieti di valutare la sua direzione futura!

Altre nuove funzionalità da winAppSDK

Correzioni di bug

  • È stato risolto un problema dalla versione 1.5-experimental2 in cui la DLL di proiezione non veniva generata. Per altre informazioni, vedere il problema 4152 su GitHub.
  • È stato risolto un problema per cui il pulsante con i puntini di sospensione nella finestra popup per la formattazione del testo di RichEditBox non visualizzava correttamente l'elenco delle azioni. Per altre informazioni, vedere il problema 9140 su GitHub.
  • È stato risolto un problema per cui ListView non gestiva correttamente gli acceleratori da tastiera. Per altre informazioni, vedere il problema 8063 su GitHub.
  • Correzione di un problema di violazione di accesso relativo all'uso AccessKey di per chiudere una finestra. Per altre informazioni, vedere il problema 8648 su GitHub.
  • È stato risolto un problema che interessava l'allineamento del testo in un MenuFlyoutItem all'interno di un MenuBar. Per altre informazioni, vedere il problema 8755 su GitHub.
  • È stato risolto un problema per cui il testo evidenziato non rimane evidenziato al clic con il pulsante destro del mouse. Per altre informazioni, vedere il problema 1801 su GitHub.
  • È stato risolto un problema che causava l'arresto anomalo dell'app inattiva all'arresto anomalo dell'app. Per altre informazioni, vedere il problema 8913 su GitHub.
  • È stato risolto un problema che poteva bloccare le applicazioni durante lo scorrimento con il pulsante centrale del mouse e facendo clic con il pulsante sinistro immediatamente dopo. Per altre informazioni, vedere il problema 9233 su GitHub.

Nuove API nella versione 1.5.0-preview1

La versione 1.5-preview1 include le nuove API seguenti rispetto alla versione stabile 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

Versione 1.4 Preview 2 (1.4.0-preview2)

Questa è l'ultima versione del canale di anteprima per la versione 1.4.

In un'app esistente di Windows App SDK 1.3 (dal canale stabile) è possibile aggiornare il pacchetto Nuget alla versione 1.4.0-preview2 (vedere la sezione Aggiorna un pacchetto in Installazione e gestione pacchetti in Visual Studio usando il Gestione pacchetti NuGet).

Per il runtime e l'MSIX aggiornati, vedere anche Download per il Windows App SDK.

Isole XAML non più sperimentali

Le isole XAML e la piattaforma ContentIslands sottostante non sono più sperimentali.

  • Attualmente le isole XAML vengono testate solo per l'uso nelle app C++. Questa versione non include elementi wrapper pratici da usare in WPF o WinForms.
  • DesktopWindowXamlSource e i tipi correlati sono stati aggiunti nello spazio dei nomi Microsoft.UI.Xaml.Hosting per le isole XAML. XamlRoot.ContentIslandEnvironment è stato aggiunto per consentire l'accesso alle informazioni sull'isola sottostanti per un elemento.
  • Molti nuovi tipi sono stati introdotti nello spazio dei nomi Microsoft.UI.Content e nello spazio dei nomi Microsoft.UI.Input come supporto sottostante per le isole XAML o per l'uso di questa funzionalità ContentIslands senza XAML.
  • Nello spazio dei nomi Microsoft.UI.Input.DragDrop è stato aggiunto un nuovo DragDropManager (più i tipi correlati) per gli scenari dell'isola.

ItemsView updates

La nuova ItemsView classe introdotta nella versione 1.4-preview1 è stata sostanzialmente aggiornata con nuove proprietà e una nuova classe di supporto.

  • Il nuovo ItemsView controllo visualizza una raccolta dati. ItemsView è simile a ListView e GridView ma viene compilato usando i componenti ItemsRepeater, ScrollView, ItemContainer e ItemCollectionTransitionProvider. Offre la possibilità unica di collegare implementazioni personalizzate Layout o ItemCollectionTransitionProvider. Un altro vantaggio fondamentale è la possibilità di cambiare il layout in tempo reale mantenendo la selezione degli elementi. Il controllo interno ScrollView offre anche funzionalità non disponibili nel ListView/GridView's ScrollViewer ad esempio la possibilità di controllare l'animazione durante gli scorrimenti a livello di codice.
    • Una nuova ItemTransitionProvider proprietà su ItemsRepeater (e il nuovo controllo ItemsView) consente di specificare un ItemCollectionTransitionProvider oggetto per controllare le animazioni di transizione su tale controllo. È CreateDefaultItemTransitionProvider stato aggiunto anche un metodo a Layout, che consente a un oggetto di layout di fornire una transizione di fallback per accompagnarla se non ne viene specificato uno in modo esplicito nel comando ItemsView.
    • Una nuova IndexBasedLayoutOrientation proprietà in Layout cui l'orientamento del layout, se presente, degli elementi si basa sull'indice nella raccolta di origine. Il valore predefinito è IndexBasedLayoutOrientation.None. I layout personalizzati impostano questa proprietà chiamando il nuovo metodo (protetto) SetIndexBasedLayoutOrientation.
    • Una nuova VisibleRect proprietà su VirtualizingLayoutContext ottiene il rettangolo del riquadro di visualizzazione visibile all'interno dell'oggetto FrameworkElement associato all'oggetto Layout. È possibile eseguire l'override del metodo virtuale protetto VirtualizingLayoutContext.VisibleRectCore per fornire il valore che verrà restituito dalla proprietà VisibleRect.
  • La nuova LinedFlowLayout classe viene in genere utilizzata per disporre gli elementi del ItemsView controllo raccolta. È particolarmente utile per la visualizzazione di raccolte di immagini. Lo fa posandoli da sinistra a destra, e dall'alto verso il basso, in linee di uguale altezza. Le immagini riempiono una linea orizzontale e quindi la incapsulano in una riga successiva. Le immagini potrebbero essere ritagliate ai bordi sinistro e destro per adattarsi a una linea. Potrebbero anche essere espansi orizzontalmente e ritagliati nei bordi superiore e inferiore per riempire una linea quando viene utilizzata la modalità di estensione.

Nuove funzionalità e aggiornamenti da winAppSDK

  • Popup/FlyoutBase.IsConstrainedToRootBounds = false è ora supportato, consentendo a un popup/riquadro a comparsa di estendersi all'esterno dei limiti della finestra padre. È SystemBackdrop stata aggiunta una proprietà a questi tipi per supportare l'acrilico in questi popup non vincolati. I menu per impostazione predefinita usano questa opzione per avere l'acrilico.
  • Closed, FrameworkClosed, e IsClosed sono stati aggiunti a DesktopAcrylicController e MicaController per migliorare la gestione durante l'arresto di oggetti/thread.
  • DesktopAcrylicController.Kind ora può essere impostato per scegliere tra alcune apparenze acriliche standard.
  • DispatcherQueue include alcuni nuovi eventi e helper per facilitare un arresto organizzato migliore e per le app che usano le isole per eseguire facilmente un ciclo di eventi supportato standard.
  • InputNonClientPointerSource nello spazio dei nomi Microsoft.UI.Input può essere usato per scenari personalizzati della barra del titolo per definire le regioni dell'area non destinate al client. Il codice può registrarsi per gli eventi corrispondenti, ad esempio il passaggio del mouse e fare clic sugli eventi in queste aree.
  • AppWindow include alcuni nuovi helper per ottenere un DispatcherQueue e associarlo allo stesso.
  • Il nuovo TreeView.SelectionChanged evento consente agli sviluppatori di rispondere quando l'utente o il code-behind modifica il set di nodi selezionati nel controllo TreeView.
  • Il nuovo ScrollView controllo fornisce una nuova alternativa a ScrollViewer. Questo nuovo controllo è altamente allineato nel comportamento e nell'API con il controllo esistente ScrollViewer , ma è basato su InteractionTracker, ha nuove funzionalità come le modifiche alla visualizzazione guidata dall'animazione ed è progettato anche per garantire la funzionalità completa di ItemsRepeater. Vedere Uno ScrollViewer più flessibile · Problema n. 108 · microsoft/microsoft-ui-xaml (github.com) per altri dettagli. Vari nuovi tipi, tra cui ScrollPresenter, fanno parte del modello complessivo ScrollView.
  • Il nuovo AnnotatedScrollBar controllo estende la funzionalità di una normale barra di scorrimento offrendo un modo semplice per spostarsi in un'ampia raccolta di elementi. Questa operazione viene ottenuta tramite una rotaia selezionabile con etichette che fungono da marcatori. Consente inoltre una comprensione più granulare del contenuto scorrevole visualizzando una descrizione comando quando si passa il puntatore sulla barra di scorrimento selezionabile.

Nuove API nella versione 1.4.0-preview2

La versione 1.4-preview2 include le nuove API seguenti rispetto alla versione 1.4-preview1 precedente:

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

Versione 1.4 Preview 1 (1.4.0-preview1)

Questa è l'ultima versione del canale di anteprima per la versione 1.4.

In un'app esistente di Windows App SDK 1.3 (dal canale stabile) è possibile aggiornare il pacchetto Nuget alla versione 1.4.0-preview1 (vedere la sezione Aggiorna un pacchetto in Installazione e gestione pacchetti in Visual Studio usando il Gestione pacchetti NuGet).

Per il runtime e l'MSIX aggiornati, vedere anche Download per il Windows App SDK.

Aggiornamenti dei widget

Sono state aggiunte tre nuove interfacce per i provider di widget da implementare: IWidgetProvider2, IWidgetProviderAnalytics e IWidgetProviderErrors. IWidgetProvider2 consente ai provider di rispondere all'azione Personalizza richiamata dall'utente, che è identica a quella disponibile per i widget di terze parti. Le interfacce IWidgetProviderAnalytics e IWidgetProviderErrors vengono usate dai provider per raccogliere dati di telemetria per i widget. Gli eventi di analisi e di errore relativi ai widget vengono comunicati ai rispettivi provider di widget. Le classi WidgetCustomizationRequestedArgs, WidgetAnalyticsInfoReportedArgse WidgetErrorInfoReportedArgs vengono usate per comunicare informazioni pertinenti per supportare nuove funzionalità.

Nuove funzionalità da tutto il WinAppSDK

  • Una nuova ThemeSettings classe che consente alle app Win32 WinRT di rilevare quando l'impostazione contrasto elevato del sistema è cambiata, in modo simile alla classe AccessibilitySettings piattaforma UWP. Per altre informazioni, vedere la specifica dell'API ThemeSettings su GitHub.
  • Popup/FlyoutBase.ShouldConstrainToRootBounds è ora supportato per consentire a descrizioni comando, menu e altri popup di estendersi all'esterno dei limiti della finestra principale. La Preview 1 non supporta ancora completamente l'uso dell'acrilico o di altri SystemBackdrops in un popup/riquadro a comparsa; API e implementazioni aggiuntive per questa funzionalità verranno incluse nella versione 1.4 successiva.
  • AccessKeyManager.EnterDisplayMode è un nuovo metodo per visualizzare le chiavi di accesso per l'elemento attivo corrente di una radice specificata. Le chiavi di accesso sono in "modalità di visualizzazione" quando viene visualizzato un suggerimento per richiamare un comando, ad esempio premendo il tasto Alt in Paint per mostrare quali tasti corrispondono ai controlli. Questo metodo consente di attivare la modalità di visualizzazione a livello di codice.
  • Application.ResourceManagerRequested fornisce un meccanismo per fornire un diverso IResourceManager per risolvere gli URI delle risorse per gli scenari in cui l'impostazione predefinita ResourceManager non funzionerà. Per altre informazioni, vedere la specifica dell'API Application.ResourceManagerRequested in GitHub.
  • Viene introdotto un nuovo controllo elenco denominato ItemsView e una classe concreta ItemContainer corrispondente. ItemContainer è un contenitore leggero con stati di selezione predefiniti e oggetti visivi, che possono facilmente eseguire il wrapping del contenuto desiderato e essere usati con ItemsView per uno scenario di controllo raccolta. ItemsView è ancora contrassegnato come sperimentale in Preview 1, ma verrà incluso nella versione 1.4 successiva.
  • La versione di WebView2 SDK è stata aggiornata dalla versione 1661.34 alla 1823.32.

Nuove API nella versione 1.4.0-preview1

La versione 1.4-preview1 include le nuove API seguenti rispetto alla versione stabile 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

Versione 1.3 Preview 1 (1.3.0-preview1)

Questa è l'ultima versione del canale di anteprima per la versione 1.3. Questa versione include le anteprime per le nuove funzionalità in WinAppSDK e diverse correzioni di bug di prestazioni, sicurezza, accessibilità e affidabilità.

In un'app esistente di Windows App SDK 1.2 (dal canale stabile) è possibile aggiornare il pacchetto Nuget alla versione 1.3.0-preview1 (vedere la sezione Aggiorna un pacchetto in Installazione e gestione pacchetti in Visual Studio usando il Gestione pacchetti NuGet).

Per il runtime e l'MSIX aggiornati, vedere anche Download per il Windows App SDK.

API di sfondo XAML

Con le proprietà incorporate nella Window XAML, gli sfondi acrilico di sfondo & Mica sono ora più facili da usare nell'app WinUI 3. Vedere le specifiche delle API di sfondo Xaml su GitHub per ulteriori informazioni sulla proprietà Window.SystemBackdrop.

public MainWindow()
{
    this.InitializeComponent();

    this.SystemBackdrop = new MicaBackdrop();
}

Window.AppWindow

Sostituendo diverse righe di codice boilerplate, è ora possibile usare le API AppWindow direttamente da una Window tramite Window.AppWindow. Vedere le specifiche delle API Window.AppWindow su GitHub per ulteriori informazioni sullo sfondo e sull'uso.

Nuove funzionalità di WinAppSDK

  • ApplicationModel.DynamicDependency: PackageDependency.PackageGraphRevisionId che sostituisce il MddGetGenerationId deprecato.
  • Responsabile ambiente: EnvironmentManager.AreChangesTracked per indicare se le modifiche apportate al responsabile ambiente possono essere monitorate nell'applicazione. Vedere le specifiche API del responsabile ambiente su GitHub per altre informazioni.
  • MRT Core: un nuovo evento, Application.ResourceManagerInitializing permette alla tua app di fornire la sua implementazione dell'interfaccia IResourceManager e offre l'accesso al ResourceManager utilizzato da WinUI per risolvere gli URI delle risorse. Per altre informazioni, vedere la specifica dell'API IResourceManager su GitHub.
  • Con la versione più recente di VSIX sperimentale, è ora possibile convertire l'app tra non in pacchetto e in pacchetto tramite il menu di Visual Studio anziché nel file di progetto.
  • Un nuovo evento, DebugSettings.XamlResourceReferenceFailed viene ora generato quando non è possibile risolvere una ricerca Static/ThemeResource di riferimento. Questo evento consente di accedere a una traccia che indica il punto in cui il framework ha cercato tale chiave per aiutarti a eseguire il debug degli errori di ricerca Static & ThemeResource. Per altre informazioni, vedere la specifica dell'API e i problemi 4972, 2350 e 6073 su GitHub.
  • Distribuzione: per gestire e ripristinare Windows App Runtime, DeploymentRepairOptions è ora disponibile come parte di DeploymentManager. Per altre informazioni, vedere la sezione Riparazione della Specifica dell'API di distribuzione in GitHub.

Problemi noti

  • Il controllo Pivot causa un arresto anomalo del runtime con un errore di analisi XAML. Per ulteriori informazioni, vedere il problema #8160 su GitHub.
  • Quando viene aperto il riquadro a comparsa DatePicker o TimePicker, l'app si arresta in modo anomalo.
  • Le API WindowsAppRuntime.ReleaseInfo e WindowsAppRuntime.RuntimeInfo introdotte nelle versioni 1.3 non sono ancora supportate perché contengono un bug critico.

Versione 1.2 Preview 2 (1.2.0-preview2)

Questa è l'ultima versione del canale di anteprima per la versione 1.2.

In un'app esistente di Windows App SDK 1.1 (dal canale stabile) è possibile aggiornare il pacchetto Nuget alla versione 1.2.0-preview2 (vedere la sezione Aggiorna un pacchetto in Installazione e gestione pacchetti in Visual Studio usando il Gestione pacchetti NuGet).

Per il runtime e l'MSIX aggiornati, vedere anche Download per il Windows App SDK.

Importante

Visual Studio 2019 e .NET 5 non sono più supportati per la compilazione di app C# (vedere Passaggio di Windows App SDK 1.2 a C# WinRT 2.0). Sono necessari Visual Studio 2022 e una delle versioni seguenti di .NET SDK: 6.0.401 (o versioni successive), 6.0.304, 6.0.109.

Per aggiornare la versione di .NET SDK, installare la versione più recente di Visual Studio 2022 o visitare Download .NET. Durante l'aggiornamento del pacchetto NuGet senza la versione richiesta di .NET SDK, quando si aggiorna il pacchetto NuGet verrà visualizzato un errore simile al seguente: "Questa versione di WindowsAppSDK richiede NET 6+ e WinRT.Runtime.dll versione 2.0 o successiva". Per aggiornare il progetto da .NET 5.0 a .NET 6.0, aprire il file di progetto e modificare "TargetFramework" in net6.0 e "Versione del sistema operativo di destinazione" al valore appropriato ,ad esempio net6.0-windows10.0.19041.0.

Widget di terze parti in Windows

La scheda Widget è stata introdotta per la prima volta in Windows 11 ed è stata limitata alla visualizzazione di widget di prima parte. I widget di Windows sono contenitori di interfaccia utente di piccole dimensioni che visualizzano testo e grafica nell'apposita scheda, associati a un'app installata nel dispositivo. Con Windows App SDK, come sviluppatori di terze parti è ora possibile creare widget per le app Win32 in pacchetto e testarle localmente nella scheda widget di Windows 11.

Per altre informazioni sui widget, vedere Panoramica dei widget.

Per iniziare a sviluppare widget per l'app, vedere la documentazione di sviluppo del Provider di servizi Widget e Concetti fondamentali sulla progettazione dei widget per prerequisiti, indicazioni e procedure consigliate.

I prerequisiti per questa versione includono quanto segue:

  • Modalità sviluppatore abilitata nel computer di sviluppo.
  • Il computer di sviluppo esegue una versione di Windows dal canale Dev del Programma Windows Insider (WIP) con scheda widget versione 521.20060.1205.0 o successiva.

Limitazioni note durante lo sviluppo di widget

  • I widget di terze parti possono essere testati solo localmente nei dispositivi registrati in WIP per questa versione di anteprima. In Windows App SDK 1.2.0, gli utenti delle versioni definitive di Windows possono iniziare ad acquisire widget 3P tramite le versioni fornite di Microsoft Store dell'app.
  • I widget possono essere creati solo per le app Win32 incluse nel pacchetto. I widget per l'App Web Progressiva (PWA) devono essere supportati come parte di Microsoft Edge 108.

Trimming per le app sviluppate con .NET

Gli sviluppatori .NET sono ora in grado di pubblicare le app WinAppSDK trimmate. Con CsWinRT 2.0, le proiezioni C#/WinRT distribuite in WinAppSDK sono ora trimmabili. La pubblicazione dell'app sottoposta a trimming può ridurre il footprint del disco dell'app rimuovendo qualsiasi codice inutilizzato dai file binari trimmabili. Le app possono anche visualizzare un miglioramento delle prestazioni di avvio. Con un'app Hello World di base, è stato riscontrato un miglioramento del footprint del disco circa l'80% e un miglioramento delle prestazioni di avvio del 7% quando è stato pubblicato. Con la raccolta WinUI, è stato riscontrato un miglioramento del footprint del disco del 45%.

Per altre informazioni su come abilitare il trimming, trimmare le limitazioni (ad esempio la riflessione sui tipi trimmabili) e gli avvisi: a tale proposito, vedere Trim self-contained deployments and executables (Trimming delle distribuzioni autonome e degli eseguibili). Gli sviluppatori devono testare accuratamente le proprie app dopo il trimming per assicurarsi che tutto funzioni come previsto. Per altre informazioni su queste modifiche, vedere il problema #2478 su GitHub.

DisplayInformation

Le app Win32 possono ora supportare High Dynamic Range (HDR) tramite la classe DisplayInformation in WinAppSDK. La classe DisplayInformation consente di monitorare le informazioni correlate alla visualizzazione di un'applicazione. Sono inclusi gli eventi per consentire ai client di monitorare le modifiche nella visualizzazione Applicazione che influiscono sulle visualizzazioni in cui risiede la visualizzazione, nonché sulle modifiche apportate agli schermi che possono influire sulla visualizzazione dell'applicazione.

Problemi risolti in WinUI 3

  • Il materiale di sfondo acrilico tramite DesktopAcrylicController è ora supportato nelle app di Windows 10. Per altre informazioni su queste modifiche, vedere il problema #7112 su GitHub.
  • È stato risolto un problema che causava l'errore di instradamento di App.UnhandledException all'applicazione. Per altre informazioni su queste modifiche, vedere il problema #5221 su GitHub.
  • È stato risolto un problema che causava la regressione degli stili listView e la modifica da WinAppSDK 1.1. Per altre informazioni su queste modifiche, vedere il problema #7666 su GitHub.

Altre limitazioni e problemi noti

Importante

Quando si fa riferimento a WinAppSDK 1.2 da un progetto, è possibile che venga visualizzato un errore simile al seguente: "Downgrade del pacchetto rilevato: Microsoft.Windows.SDK.BuildTools da 10.0.22621.1 a 10.0.22000.194.", causato da riferimenti incompatibili al pacchetto dal progetto dell'app e dal pacchetto WinAppSDK. Per risolvere questo problema, è possibile aggiornare il riferimento nel progetto a una versione più recente e compatibile di Microsoft.Windows.SDK.BuildTools o semplicemente rimuovere il riferimento dal progetto. Se si rimuove dal progetto, verrà fatto riferimento implicito a una versione compatibile dal pacchetto WinAppSDK.

  • La compilazione con Arm64 Visual Studio non è attualmente supportata.
  • Le impostazioni predefinite del programma di avvio automatico e dell'inizializzatore automatico WinRT RegFree sono (ora) impostate solo per i progetti che producono un elemento eseguibile (OutputType=Exe o WinExe). Ciò previene l'aggiunta di inizializzatori automatici nelle DLL della libreria di classi e in altri file non eseguibili per impostazione predefinita.
    • Se è necessario un inizializzatore automatico in un file non eseguibile ,ad esempio una DLL di test caricata da un eseguibile generico che non inizializza il programma di avvio automatico, è possibile abilitare in modo esplicito un inizializzatore automatico nel progetto tramite <WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize> o <WindowsAppSdkUndockedRegFreeWinRTInitialize>true</WindowsAppSdkUndockedRegFreeWinRTInitialize>.
  • Le API delle informazioni sulla versione (ReleaseInfo e RuntimeInfo) possono essere richieste ma restituiscono la versione 0 (non le informazioni effettive sulla versione).

Versione 1.2 Anteprima (1.2.0-preview1)

In un'app esistente di Windows App SDK 1.1 (dal canale stabile) è possibile aggiornare il pacchetto Nuget alla versione 1.2.0-preview1 (vedere la sezione Aggiorna un pacchetto in Installazione e gestione pacchetti in Visual Studio usando il Gestione pacchetti NuGet).

Per il runtime e l'MSIX aggiornati, vedere anche Download per il Windows App SDK.

WinUI 3

Le app WinUI 3 possono riprodurre audio e video con i controlli di riproduzione multimediale MediaPlayerElement e MediaTransportControls. Per altre info su come e quando usare i controlli multimediali, vedere Lettori multimediali.

WinUI 3 è stato aggiornato con i controlli, gli stili e i comportamenti più recenti di WinUI 2.8. Questi aggiornamenti includono l'aggiunta del comando InfoBadge, miglioramenti alla modalità di accessibilità e contrasto elevato, nonché correzioni di bug tra i comandi. Per altri dettagli, vedere le note sulla versione per WinUI 2.7 e WinUI 2.8.

Problema noto

Gli stili ListView sono regrediti e modificati da WinAppSDK 1.1.

Notifications

AppNotificationBuilder è stato introdotto come alternativa al payload XML per la creazione e la definizione delle notifiche dell'app.

Per informazioni sull'utilizzo, vedere la specifica AppNotificationBuilder su GitHub.

Inoltre, si veda Avvio rapido: notifiche di Windows App SDK per un esempio di come creare un'applicazione di Windows desktop che invia e riceve notifiche di app locali.

Modifica

Per le notifiche push, quando si effettua una chiamata di richiesta canale, le app dovranno usare l'ID oggetto di Azure anziché l'ID app Azure. Per informazioni dettagliate sulla ricerca dell'ID oggetto di Azure, vedere Avvio rapido: notifica push in Windows App SDK.

Problema risolto

PushNotificationManager.IsSupported eseguirà un controllo per la modalità con privilegi elevati. Restituirà false se l'app è elevata.

Limitazioni note (notifiche)

Windowing

La personalizzazione completa della barra del titolo è ora disponibile in Windows 10, versione 1809 e successive tramite la classe AppWindowTitleBar. È possibile impostare AppWindowTitleBar.ExtendsContentIntoTitleBar per true estendere il contenuto nell'area della barra del titolo e SetDragRectangles per definire le aree di trascinamento (oltre ad altre opzioni di personalizzazione).

Se è stata usata la proprietà AppWindowTitleBar.IsCustomizationSupported per verificare se è possibile richiedere le API AppWindowTitleBar, ora restituisce true nelle versioni supportate di Windows App SDK Windows 10 (1809 e versioni successive).

Limitazioni note (Windowing)

Le personalizzazioni della barra del titolo semplice non sono supportate in Windows 10. Ad esempio: BackgroundColor, InactiveBackgroundColor, ForegroundColor, InactiveForegroundColor e IconShowOptions. Se si richiedono queste proprietà, queste verranno ignorate automaticamente. Tutte le altre API AppWindowTitleBar operano in Windows 10, versione 1809 e successive. Per le API colore del pulsante didascalia (tra le altre) e Height, ExtendsContentIntoTitleBar è necessario impostare su true, altrimenti verranno ignorate automaticamente.

Controllo di accesso

Introdotto security.accesscontrol.h con la funzione GetSecurityDescriptorForAppContainerNames per semplificare e semplificare la condivisione di oggetti denominati tra processi in pacchetto e API Win32 generali. Questo metodo accetta un elenco di nomi di famiglia di pacchetti (PFN) e maschere di accesso, oltre a restituire un descrittore di sicurezza. Per altre informazioni, vedere la specifica GetSecurityDescriptorForAppContainerNames spec su GitHub.

Altre limitazioni e problemi noti

  • .NET PublishSingleFile non è supportato.

Versione 1.1 Preview 3 (1.1.0-preview3)

Questa è l'ultima versione del canale di anteprima per la versione 1.1. Supporta tutte le funzionalità del canale di anteprima (vedere Funzionalità disponibili per canale di rilascio).

In un'app esistente che usa Windows App SDK1.3 è possibile aggiornare il pacchetto Nuget alla preview3 1.1.0 (vedere la sezione Aggiorna un pacchetto in Installazione e gestione pacchetti in Visual Studio usando Gestione pacchetti NuGet). Vedere anche Download per il Windows App SDK per il runtime aggiornato e MSIX.

Nota

Per gli sviluppatori C#, è necessaria una delle seguenti versioni di .NET SDK: 6.0.202, 6.0.104, 5.0.407, 5.0.213 (o versione successiva). Per aggiornare la versione di .NET SDK, visitare .NET Download o aggiornare la versione più recente di Visual Studio. Senza la versione richiesta di .NET SDK, quando si aggiorna il pacchetto NuGet verrà visualizzato un errore simile al seguente: "Questa versione di WindowsAppSDK richiede WinRT.Runtime.dll versione 1.6 o successiva".

Oltre a tutte le funzionalità di Preview 2 , le sezioni seguenti descrivono funzionalità, limitazioni e problemi noti nuovi e aggiornati per questa versione.

WinUI 3

Mica e Acrilico di sfondo sono ora disponibili per le applicazioni WinUI 3.

Per altre informazioni su questi materiali, vedere Materiali in Windows 11. Vedere il codice di esempio per l'applicazione di Mica nelle applicazioni C++ all'indirizzo Using a SystemBackdropController with WinUI 3 XAML (Uso di systemBackdropController con XAML WinUI 3) e nelle applicazioni C# in GitHub come parte della raccolta WinUI 3.

Notifications

Problemi risolti:

  • Nella versione 1.1.0-preview1 e 1.1.0-preview2 alcune app non incluse nel pacchetto vedranno le icone dell'app copiate in modo non corretto in AppData\LocalMicrosoftWindowsAppSDK. Per questa versione, verranno invece copiati in AppData\Local\Microsoft\WindowsAppSDK. Per evitare la perdita di icone, è consigliabile eliminare manualmente l'icona dell'app nel percorso non corretto dopo l'aggiornamento alla versione 1.1.0-preview3.
  • L'icona dell'app e il recupero del nome visualizzato dell'app per le notifiche tramite collegamenti sono ora supportati. Questa icona dell'app avrà la priorità su qualsiasi icona specificata nei file di risorse.
  • Il supporto per le notifiche push per le app non incluse nel pacchetto è stato ripristinato (vedere Limitazioni per l'eccezione annotata). È stata introdotta l'API PushNotificationManager::IsSupported per verificare se l'app supporta le notifiche push.

Limitazioni :

  • Le notifiche per una app senza pacchetti con privilegi elevati non sono supportati. PushNotificationManager.IsSupported non eseguirà un controllo per la modalità con privilegi elevati. Tuttavia, Microsoft sta lavorando per supportare questa funzionalità in una versione futura.

Creazione di pacchetti MSIX

MsiX ha migliorato l'aggiunta e l'estensione delle funzionalità esistenti tramite le categorie di estensioni:

  • windows.appExecutionAlias
  • windows.customDesktopEventLog
  • windows.dataShortcuts
  • windows.fileTypeAssociation
  • windows.fileTypeAssociation.iconHandler
  • windows.folder
  • windows.shortcut

Questi richiedono l'installazione del pacchetto framework Windows App SDK. Vedere Download per Windows App SDK per installare il runtime.

Gestore ambiente

Insieme di API che consente agli sviluppatori di aggiungere, rimuovere e modificare le variabili di ambiente senza dover usare direttamente l'API del Registro di sistema.

Chiarimento dalla versione 1.1 Preview 1: "La rimozione automatica di qualsiasi variabile di ambiente cambia quando viene disinstallata un'app che usa la gestione ambiente è disponibile" solo per le app in pacchetto. Inoltre, il ripristino delle modifiche delle variabili di ambiente richiede l'installazione del pacchetto framework Windows App SDK, vedere Download per il Windows App SDK per il runtime.

Altre limitazioni note

Regressioni dalla versione 1.1 Preview 2:

  • Per le app .NET che usano LE API MRT Core e le app WinUI che non vengono distribuite con MSIX a progetto singolo:
    • I file RESW e di immagine aggiunti al progetto come elementi esistenti e in precedenza inclusi automaticamente nei file PRIResource e Content ItemGroup, rispettivamente, non verranno inclusi in tali ItemGroup. Di conseguenza, queste risorse non verranno indicizzate durante la generazione PRI, quindi non saranno disponibili durante il runtime.
      • Soluzione alternativa: includere manualmente le risorse nel file di progetto e rimuoverle da None ItemGroup.
      • Soluzione alternativa: se disponibile, aggiornare .NET SDK delle app alla versione 6.0.300. Per altre informazioni, vedere Requisiti della versione per .NET SDK .
  • Per le app .NET che non vengono distribuite con MSIX a progetto singolo:
    • Se un file viene aggiunto a Content ItemGroup due o più volte, si verifica un errore di compilazione.
      • Soluzione alternativa: eliminare l'inclusione/s duplicata o impostare EnableDefaultContentItems su Falso nel file di progetto.

Entrambe le regressioni verranno ripristinate nella prossima versione stabile.

Versione 1.1 Preview 2 (1.1.0-preview2)

Questa è la seconda versione del canale di anteprima per la versione 1.1. Supporta tutte le funzionalità del canale di anteprima (vedere Funzionalità disponibili per canale di rilascio).

In un'app esistente che usa Windows App SDK1.3 è possibile aggiornare il pacchetto Nuget alla preview2 1.1.0 (vedere la sezione Aggiorna un pacchetto in Installazione e gestione pacchetti in Visual Studio usando Gestione pacchetti NuGet). Vedere anche Download per il Windows App SDK per il runtime aggiornato e MSIX.

Nota

Per gli sviluppatori C#, è necessaria una delle seguenti versioni di .NET SDK: 6.0.202, 6.0.104, 5.0.407, 5.0.213 (o versione successiva). Per aggiornare la versione di .NET SDK, visitare .NET Download o aggiornare la versione più recente di Visual Studio. Senza la versione richiesta di .NET SDK, quando si aggiorna il pacchetto NuGet verrà visualizzato un errore simile al seguente: "Questa versione di WindowsAppSDK richiede WinRT.Runtime.dll versione 1.6 o successiva".

Oltre a tutte le funzionalità di Preview 1 , le sezioni seguenti descrivono funzionalità, limitazioni e problemi noti nuovi e aggiornati per questa versione.

Notifications

Problemi risolti:

  • Un'app senza l'identità del pacchetto che invia notifiche visualizzerà l'icona dell'app nella notifica se questa fa parte della risorsa dell'app. Se la risorsa dell'app non ha un'icona, viene usata l'icona dell'app predefinita di Windows.
  • Un'app WinUI 3 che non è in esecuzione non può essere ora attivata in background tramite una notifica.

Regressione dalla versione 1.1 Preview 1: supporto delle notifiche push per le app non incluse nel pacchetto. Ripristino previsto nella versione successiva.

Limitazioni note:

  • È stata introdotta l'API PushNotificationManager::IsSupported per verificare se le app autonome supportano le notifiche push. Tuttavia, questa API non funziona ancora come previsto, quindi tenere d'occhio la successiva versione di anteprima per il supporto completo dell'API IsSupported.
  • Alcune app non incluse nel pacchetto vedranno le icone dell'app copiate in modo non corretto in AppData\LocalMicrosoftWindowsAppSDK. Per la versione successiva, verranno invece copiati in AppData\Local\Microsoft\WindowsAppSDK. Per evitare la perdita di icone, lo sviluppatore deve eliminare manualmente l'icona dell'app nel percorso non corretto dopo l'aggiornamento alla versione successiva.
  • L'icona dell'app e il recupero del nome visualizzato per le notifiche tramite collegamenti non sono supportati. Tuttavia, stiamo lavorando per un supporto in una versione futura.

Distribuzione

Nuove funzionalità:

Limitazioni note:

  • La distribuzione autonoma è supportata solo in Windows 10, 1903 e versioni successive.

Windowing

Per semplificare l'accesso alla programmazione alle funzionalità implementate in USER32.dll (vedere Windows e messaggi), questa versione presenta più funzionalità nella stessa AppWindow.

Nuove funzionalità:

  • Le app con finestre esistenti hanno un maggiore controllo sulla modalità di visualizzazione di una finestra richiamando AppWindow.ShowOnceWithRequestedStartupState l'equivalente di ShowWindow(SW_SHOWDEFAULT).
  • Le app possono visualizzare, ridurre al minimo e specificare se la finestra deve essere attivata o meno al momento dell'esecuzione della chiamata.
  • Le app possono ora impostare le dimensioni dell'area client di una finestra nelle coordinate Win32.
  • Sono state aggiunte API per supportare la gestione degli ordini z delle finestre.
  • Le app che disegnano barre dei titoli personalizzate con AppWindowTitleBar.ExtendsContentIntoTitleBar possono impostare un'opzione PreferredTitleBarHeight. È possibile scegliere una barra del titolo di altezza standard o una barra del titolo alta che offre più spazio per il contenuto interattivo. Vedere Barra del titolo nelle linee guida per la progettazione fluente in modo da avere consigli su quando usare una barra del titolo alta.

Limitazioni note:

  • Il supporto della barra del titolo alta è disponibile solo in Windows 11. Stiamo lavorando per portare questo livello inferiore insieme ad altre API della barra del titolo personalizzate.

WinUI 3

Problemi risolti:

  • È stato risolto un problema che causava l'arresto anomalo delle app C# con WebView2 all'avvio quando il runtime C/C++ (CRT) non è installato aggiornando WebView2 SDK da 1020.46 a 1185.39.
  • È stato risolto un problema che creava alcuni arrotondamenti degli angoli per mostrare una sfumatura quando dovrebbero presentare un colore a tinta unita. Per ottenere altre informazioni, vedere problema 6076 & problema 6194 su GitHub.
  • È stato risolto un problema per cui gli stili aggiornati mancavano da generic.xaml.
  • Correzione del problema del ciclo di layout che causa l'arresto anomalo di un'app durante lo scorrimento fino al termine di un controllo ListView. Per altre informazioni, vedere il problema 6218 su GitHub.

Prestazioni

Le applicazioni C# presentano diversi miglioramenti delle prestazioni. Per altri dettagli, vedere le Note sulla versione di C#/WinRT 1.6.1.

Versione 1.1 Preview 1 (1.1.0-preview1)

Questa è la prima versione del canale di anteprima per la versione 1.1. Supporta tutte le funzionalità del canale di anteprima (vedere Funzionalità disponibili per canale di rilascio).

In un'app esistente che usa Windows App SDK1.3 è possibile aggiornare il pacchetto Nuget alla preview1 1.1.0 (vedere la sezione Aggiorna un pacchetto in Installazione e gestione pacchetti in Visual Studio usando Gestione pacchetti NuGet). Vedere anche Download per il Windows App SDK per il runtime aggiornato e MSIX.

Nelle sezioni seguenti vengono descritte le funzionalità nuove e aggiornate, le limitazioni e i problemi noti di questa versione.

WinUI 3

Problema noto: gli utenti non sono in grado di rilasciare un elemento quando il trascinamento della selezione è abilitato.

Supporto con privilegi elevati (amministratore)

Usando Windows App SDK 1.1 Preview 1, le app (incluso WinUI 3) potranno essere eseguite con privilegi elevati.

Limitazioni importanti

  • Attualmente disponibile solo in Windows 11. Ma stiamo valutando l'introduzione di questo livello di supporto in una versione successiva.

Problemi noti

  • Le applicazioni WinUI 3 vanno in crash quando si trascina un elemento durante un'interazione di trascinamento.

Distribuzione autonoma

Windows App SDK 1.1 introdurrà il supporto per la distribuzione autonoma. La nostra panoramica della distribuzione illustra in dettaglio le differenze tra la distribuzione dipendente dal framework e quella autonoma e il modo in cui iniziare.

Problemi noti:

  • Un'app C++ inclusa nel pacchetto deve aggiungere il codice seguente alla fine del file di progetto per risolvere un bug nel file autonomo .targets che rimuove i riferimenti al framework a 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>
    
  • Supportato solo su Windows 10 1903 e versioni successive.

Notifications

Gli sviluppatori di app incluse nel pacchetto (inclusi quelli con posizione esterna) e le app non incluse nel pacchetto possono ora inviare notifiche di Windows.

Nuove funzionalità:

  • Supporto per le notifiche app incluse nel pacchetto e non incluse nel pacchetto. Dettagli completi su GitHub
    • Gli sviluppatori possono inviare notifiche dell'app, note anche come notifiche di tipo avviso popup, localmente o dal proprio servizio cloud.
  • Supporto per le notifiche push per le app incluse nel pacchetto e non incluse nel pacchetto. Dettagli completi su GitHub
    • Gli sviluppatori possono inviare notifiche non elaborate o notifiche delle app dal proprio servizio cloud.

Limitazioni :

  • Le app pubblicate come autonome potrebbero non supportare le notifiche push. Tenere d'occhio la versione di anteprima successiva per un'API IsSupported per verificare la disponibilità del supporto delle notifiche push.
  • Le app non incluse nel pacchetto che inviano notifiche dell'app non vedranno l'icona dell'app nella relativa notifica, a meno che non siano applicazioni console. Le app console non incluse nel pacchetto devono seguire i modelli mostrati nell'esempio ToastNotificationsDemoApp .
  • È necessario installare il runtime di Windows App SDK per supportare le notifiche push, vedere Download per il Windows App SDK per il programma di installazione.
  • Un'app WinUI 3 che non è in esecuzione non può essere attivata in background tramite una notifica. Tuttavia, stiamo lavorando per un supporto in una versione futura.

Gestore ambiente

Insieme di API che consente agli sviluppatori di aggiungere, rimuovere e modificare le variabili di ambiente senza dover usare direttamente l'API del Registro di sistema.

Nuove funzionalità

  • Fornisce la rimozione automatica di tutte le variabili di ambiente quando viene disinstallata un'app che usa gestione ambiente.

Limitazioni

  • Attualmente non disponibile nelle app C#. Ma stiamo valutando l'introduzione di questa funzionalità alle app C# in una versione successiva.

Altre limitazioni e problemi noti

  • Se si usa C# con 1.1.0 Preview 1, è necessario usare almeno una delle seguenti versioni di .NET SDK: .NET SDK 6.0.201, 6.0.103, 5.0.212 o 5.0.406. Per aggiornare .NET SDK, è possibile eseguire l'aggiornamento alla versione più recente di Visual Studio oppure visitare Download .NET.

Versione 1.0 Anteprima (1.0.0-preview3)

La Preview 3 è la versione più recente del canale di anteprima per la versione 1.0 di Windows App SDK. L'anteprima 3 supporta tutte le funzionalità del canale di anteprima.

Scaricare le estensioni di Visual Studio 1.0 Preview 3 (VSIX)

Nota

Se sono state installate le estensioni di Visual Studio (VSIX) di Windows App SDK, disinstallarle prima di installare una nuova versione. Per le direzioni, vedere Gestisci estensioni per Visual Studio.

Dalla tabella seguente è possibile scaricare le estensioni di Visual Studio (VSIX) per la versione 1.0 Preview 3. Per tutte le versioni, vedere Download per Windows App SDK. Se non è già stato fatto, iniziare configurando l'ambiente di sviluppo seguendo la procedura descritta in Installazione degli strumenti per Windows App SDK.

Le estensioni seguenti sono personalizzate per il linguaggio di programmazione e la versione di Visual Studio.

Download di 1.0 Preview 3 Descrizione
Estensione di Visual Studio 2019 C# Compilare app C# con l'estensione di Visual Studio 2019 per Windows App SDK.
Estensione di Visual Studio 2019 C++ Compilare app C# con l'estensione di Visual Studio 2019 per Windows App SDK.
Estensione di Visual Studio 2022 C# Compilare app C# con l'estensione di Visual Studio 2022 per Windows App SDK.
Estensione di Visual Studio 2022 C++ Compilare app C# con l'estensione di Visual Studio 2022 per Windows App SDK.
Il .exe programma di installazione e i pacchetti MSIX Distribuire Windows App SDK con l'app usando il .exe programma di installazione e i pacchetti MSIX.

Nelle sezioni seguenti vengono descritte le funzionalità nuove e aggiornate, le limitazioni e i problemi noti per 1.0 Preview 3.

WinUI 3

Ora è supportata la distribuzione di app WinUI 3 senza pacchetti MSIX. Si veda Creazione del primo progetto WinUI 3 per configurare l'applicazione WinUI 3 in modo da supportare la distribuzione non inclusa nel pacchetto.

Limitazioni importanti

  • Le applicazioni WinUI 3 non incluse nel pacchetto sono supportate solo nelle versioni di Windows 1909 e successive.
  • Le applicazioni WinUI 3 non incluse nel pacchetto sono supportate in x86 e x64. Il supporto arm64 verrà aggiunto nella prossima versione stabile.
  • L'estensione Strumenti di creazione pacchetti MSIX a progetto singolo per Visual Studio 2019 o Visual Studio 2022 è necessaria per le app non incluse nel pacchetto.
  • In un'app non inclusa nel pacchetto potrebbe essere visualizzato un prompt per installare .NET 3.5; se viene fatto, è possibile ignorarlo.
  • Alcune API non sono attualmente supportate nelle app non incluse nel pacchetto. L'obiettivo è risolvere questo problema nella prossima versione stabile. Alcuni esempi:
  • I controlli ListView, CalendarView e GridView usano gli stili non corretti, per cui stiamo cercando di risolvere questo problema nella prossima versione stabile.

Per altre informazioni o per iniziare a sviluppare con WinUI 3, vedere:

Altre limitazioni e problemi noti

  • Le app non incluse nel pacchetto non sono supportate in Windows 10 versione 1809. L'obiettivo è risolvere questo problema nella versione successiva nel canale stabile.

  • L'app MSIX a progetto singolo C# non viene compilata se gli strumenti UWP C++ non sono installati. Se si dispone di un progetto MSIX a progetto singolo C#, sarà necessario installare il componente facoltativo C++ (v14x) Strumenti per la piattaforma UWP (Universal Windows Platform).

  • Questa versione presenta i modelli di progetto App vuota, In pacchetto (WinUI 3 in Desktop) per C# e C++. Questi modelli consentono di compilare l'app in un pacchetto MSIX senza l'uso di un progetto separato di creazione pacchetti (vedere Creazione di un pacchetto dell'app usando MSIX a progetto singolo). Questi modelli presentano alcuni problemi noti in questa versione:

    • Voce di menu Pubblica mancante fino al riavvio di Visual Studio. Quando si crea una nuova app sia in Visual Studio 2019 che in Visual Studio 2022 usando il modello di progetto App vuota, Inclusa nel pacchetto (WinUI 3 in Desktop), il comando per pubblicare il progetto non viene visualizzato nel menu finché non si chiude e si riapre Visual Studio.

    • Errore durante l'aggiunta di riferimenti a progetti di libreria statica/dinamica alle app C++ usando la creazione di pacchetti MSIX a progetto singolo. Visual Studio visualizza un errore indicante che il progetto non può essere aggiunto come riferimento poiché i tipi di progetto non sono compatibili.

    • Errore durante il riferimento a un controllo utente personalizzato in un progetto di libreria di classi. L'applicazione si arresterà in modo anomalo riportando l'errore che il sistema non riesce a trovare il percorso specificato.

    • Modello C# o C++ per Visual Studio 2019. L'errore si verificherà quando si tenta di compilare il progetto: "Il progetto non sa come eseguire il nome progetto del profilo". Per risolvere questo problema, installare l'estensione Strumenti di creazione pacchetti MSIX a progetto singolo.

    • Modello C# per Visual Studio 2019 e Visual Studio 2022. In Visual Studio quando si usa Avvia il Debug o Avvia senza eseguire il debug, se l'app non viene distribuita ed eseguita (e non sono presenti commenti e suggerimenti da Visual Studio), fare clic sul nodo del progetto in Esplora soluzioni per selezionarla e riprovare.

    • Modello C# per Visual Studio 2019 e Visual Studio 2022. Quando si tenta l'esecuzione o si tenta di eseguire il debug del progetto nel computer di sviluppo, si verifica l'errore seguente: "Il progetto deve essere distribuito prima di poter eseguire il debug. Abilitare Distribuisci in Configuration Manager." Per risolvere questo problema, abilitare la distribuzione per il progetto in Configuration Manager. Per istruzioni dettagliate, vedere Creazione del primo progetto di WinUI 3.

    • Modello C++ per Visual Studio 2022 versione 17.0 fino alla Preview 4. Si verifica il seguente errore la prima volta che si tenta di eseguire il progetto: "Si sono verificati errori di distribuzione". Per risolvere questo problema, eseguire o distribuire il progetto una seconda volta. Questo problema verrà risolto in Visual Studio 2022 versione 17.0 Preview 7.

  • Nessun supporto per qualsiasi configurazione di compilazione cpu: quando si aggiunge Windows App SDK a un'applicazione o a un componente .NET esistente che supporta Qualsiasi CPU, è necessario specificare l'architettura desiderata: x86 o x64arm64.

  • +I progetti C# che usano la versione 1.0 Preview 3 devono usare il seguente .NET SDK: .NET 6 SDK o versione successiva (vedere Download .NET e .NET 5 raggiungeranno la fine del supporto il 10 maggio 2022).

  • Un'alternativa a DispatcherQueue.TryEnqueue (per riprendere l'esecuzione nel thread della coda del dispatcher) consiste nell'usare la funzione helper resume_foreground nella Libreria di implementazione di Windows (WIL):

    1. Per prima cosa, aggiungere un riferimento al progetto al pacchetto NuGet Microsoft.Windows.ImplementationLibrary.
    2. Aggiungere #include <wil/cppwinrt_helpers.h> al proprio pch.h.
    3. Aggiungere #include <winrt/Microsoft.UI.Dispatching.h> al proprio pch.h.
    4. Ora co_await wil::resume_foreground(your_dispatcherqueue);.

Problema importante che influisce sulla versione 1.0 Preview 1 e Preview 2

La versione 1.0 Preview 1 e l'anteprima 2 di Windows App SDK include un meccanismo per pulire tutte le modifiche delle variabili di ambiente apportate da un'app inclusa nel pacchetto quando tale app viene disinstallata. Questa funzionalità si trova in uno stato sperimentale e la prima versione include un bug noto che può danneggiare la variabile di ambiente PATH del sistema.

Preview 1 e Preview 2 danneggiano qualsiasi variabile di ambiente PATH contenente il carattere di espansione %. Ciò si verifica ogni volta che viene disinstallata un'app in pacchetto, indipendentemente dal fatto che l'app usi Windows App SDK.

Vedere anche il problema di danneggiamento delle variabili di ambiente PATH.

Dettagli

La voce di sistema PATH viene archiviata nel valore Path nella chiave seguente nel Registro di sistema:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Se si avvia l'editor del Registro di sistema (regedit.exe), è possibile copiare e incollare il percorso sopra nella barra di navigazione (immediatamente sotto la barra dei menu) e premere INVIO per individuare il tasto.

Il valore Path di tale chiave dovrebbe essere di tipo REG_EXPAND_SZ, ma il bug lo modifica in REG_SZ. Ciò rende inutilizzabile la variabile dell'ambiente di sistema PATH se contiene il carattere di espansione della variabile %.

Versioni interessate

Mitigazione

Per ripristinare lo stato corretto del computer, seguire questa procedura:

  1. Controllare se PATH nel Registro di sistema è danneggiato e, in tal caso, reimpostarlo eseguendo lo script seguente.

    È possibile eseguire il passaggio 1 con il seguente script di Windows PowerShell (PowerShell Core non funzionerà). Eseguirlo con privilegi elevati.

    # 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. Disinstallare tutte le app che usano Windows App SDK 1.0 Preview1 o Preview2 (vedere lo script seguente).

  3. Disinstallare i pacchetti Windows App SDK 1.0 Preview1/Preview2, incluso il pacchetto che contiene il bug (vedere lo script seguente).

    È possibile eseguire i passaggi 2 e 3 con il seguente script di Windows PowerShell (PowerShell Core non funzionerà). Eseguirlo con privilegi elevati.

    # 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
    

Correzione in Windows App SDK 1.0 Preview 3

La funzionalità che causa il danneggiamento della variabile di ambiente PATH verrà rimossa nella versione successiva di Windows App SDK 1.0 Preview 3. Potrebbe essere reintrodotto in un secondo momento, quando tutti i bug sono stati corretti e testati accuratamente.

È consigliabile usare la versione 1.0 Preview 3.

Versione 1.0 Preview 2 (1.0.0-preview2)

Importante

La versione 1.0 Preview 1 e Preview 2 contiene un bug critico. Se è già stata installata una di queste anteprime, vedere come risolvere il problema. È consigliabile usare invece la versione 1.0 Preview 3 .

Questa è l'ultima versione del canale di anteprima per la versione 1.0. Supporta tutte le funzionalità del canale di anteprima.

Nelle sezioni seguenti vengono descritte le funzionalità nuove e aggiornate, le limitazioni e i problemi noti di questa versione.

WinUI 3

Nuovi aggiornamenti:

  • I controlli sono stati aggiornati per riflettere gli stili di Windows più recenti di WinUI 2.6.
  • MSIX a progetto singolo è supportato.
  • Il pacchetto WinUI 3 può essere ora destinato alla build 17763 e versioni successive. Per altre informazioni, vedere il problema #921.
  • La barra strumenti in-app è supportata. Tuttavia, la barra degli strumenti in-app e il supporto esistente "Ricaricamento rapido/Albero visuale in tempo reale" richiedono la prossima versione di Visual Studio 17.0 Preview 5, disponibile più avanti in ottobre.

Correzione di bug: il testo WebView2Runtime è ora localizzato.

Per altre informazioni o per iniziare a sviluppare con WinUI 3, vedere:

Windowing

Questa versione introduce gli aggiornamenti alla classe AppWindow . In questa versione non sono state aggiunte nuove funzionalità principali, ma sono state rimosse modifiche ai nomi dei metodi, alle proprietà e ad alcuni valori restituiti. Vedere la documentazione e gli esempi per gli aggiornamenti dettagliati. Se è stato usato AppWindow nelle versioni 1.0 Experimental or 1.0 Preview 1, occorre aspettarsi alcune modifiche al codice.

Nuovi aggiornamenti:

  • La classe AppWindowConfiguration è stata rimossa. Le proprietà di questa classe sono ora disponibili nella stessa AppWindow o nelle classi Relatore.
  • La maggior parte dei bool valori restituiti per i metodi API WinRT in questo spazio è stata rimossa ed è ora void poiché questi metodi hanno sempre esito positivo.
  • Le chiamate C# ImportDll non sono più necessarie per GetWindowIdFromWindow e GetWindowFromWindowId. Usare invece i metodi wrapper .NET disponibili nella classe Microsoft.UI.Win32Interop class instead.

Limitazioni importanti:

  • Al momento Windows App SDK non fornisce metodi per collegare il contenuto del framework dell'interfaccia utente a un AppWindow; è possibile usare solo i metodi di accesso di interoperabilità.
  • La personalizzazione della barra del titolo della finestra funziona solo in Windows 11. Usare il metodo IsCustomizationSupported per verificare il supporto delle funzionalità di personalizzazione della barra del titolo. L'intento è di portare questa funzionalità a un livello inferiore.

Per altre informazioni, vedere Gestisci finestre delle app.

Input

Nuovi aggiornamenti:

  • Miglioramento del supporto per l'input del touchpad di precisione.

Limitazioni importanti:

  • Tutte le funzioni statiche di fabbrica di PointerPoint sono state rimosse: GetCurrentPoint, GetCurrentPointTransformed, GetIntermediatePoints e GetIntermediatePointsTransformed.
  • Windows App SDK non supporta il recupero di oggetti PointerPoint con ID puntatore. È invece possibile utilizzare la funzione membro PointerPointGetTransformedPoint per recuperare una versione trasformata di un oggetto PointerPoint. Per i punti intermedi, è possibile utilizzare le funzioni membro PointerEventArgsGetIntermediatePoints e GetTransformedIntermediatePoints. Per ulteriori dettagli, vedere la documentazione.

MRT Core

Nuovi aggiornamenti:

  • Gli sviluppatori di app possono ora rifiutare esplicitamente l'indicizzazione di un file di immagine o di un file RESW nel file PRI nei progetti .NET. Per altre informazioni, vedere il problema 980.

Limitazioni importanti:

  • Nei progetti .NET i file di risorse copiati nella cartella del progetto non vengono indicizzati in F5 se l'app è già stata compilata. Come soluzione alternativa, ricompilare l'app. Per altre informazioni, vedere il problema 1503 ].
  • Nei progetti .NET i file di risorse esistenti aggiunti da una cartella esterna non vengono indicizzati senza l'impostazione manuale dell'azione di compilazione. Per risolvere questo problema, impostare l'azione di compilazione in Visual Studio: Contenuto per i file di immagine e PRIResource per i file RESW. Per altre informazioni, vedere il problema 1504.

Distribuzione per app non in pacchetto

Nuove funzionalità:

  • Windows App SDK 1.0 Preview 2 introduce un wrapper .NET per l'API del programma di avvio automatico (vedere Utilizzo del runtime di Windows App SDK per le app incluse nel pacchetto con percorso esterno o non incluso nel pacchetto). L'API del programma di avvio automatico è un set di funzioni C/C++ native che le app non incluso nel pacchetto devono usare per assumere in modo dinamico una dipendenza dal pacchetto framework di Windows App SDK in fase di esecuzione. Il wrapper .NET offre un modo più semplice per richiedere l'API del programma di avvio automatico dalle app .NET, incluse le app Windows Form e WPF. Il wrapper .NET per l'API del programma di avvio automatico è disponibile nell'assembly Microsoft.WindowsAppRuntime.Bootstrap.Net.dll, che è locale per il progetto dell'app. Per altre informazioni sul wrapper .NET, vedere Libreria wrapper .NET.
  • Le app in pacchetto possono ora usare l'API di distribuzione per ottenere i pacchetti MSIX principali e singleton installati nel computer. I pacchetti main e singleton fanno parte del pacchetto framework installato con l'app, ma a causa di una limitazione con il modello di applicazione windows, le app incluse nel pacchetto dovranno eseguire questo passaggio aggiuntivo per ottenere tali pacchetti installati. Per altre informazioni sul funzionamento dell'API di distribuzione, vedere Windows App SDK: guida alla distribuzione per le app incluse nel pacchetto dipendenti dal framework.

Limitazioni importanti:

  • Il wrapper .NET per l'API del programma di avvio automatico è destinato solo alle applicazioni .NET senza pacchetti per semplificare l'accesso a Windows App SDK.
  • Solo le app MSIX incluse nel pacchetto con attendibilità totale o che dispongono della funzionalità con restrizioni packageManagement hanno l'autorizzazione per usare l'API di distribuzione per installare le dipendenze del pacchetto Main e Singleton. Il supporto per le app incluse nel pacchetto con attendibilità parziale sarà disponibile nelle versioni successive.
  • Quando F5 testa un'app x86 che usa il metodo DeploymentManager.Initialize in un sistema x64, verificare che il framework x64 sia installato per la prima volta eseguendo WindowsAppRuntimeInstall.exe. In caso contrario, si verifica un errore NOT_FOUND a causa di Visual Studio che non distribuisce il framework x64, il quale in genere si verifica tramite la distribuzione dello Store o il trasferimento locale.

Ciclo di vita dell'app

La maggior parte delle funzionalità del ciclo di vita delle app esiste già nella piattaforma UWP ed è stata inserita in Windows App SDK per l'uso da parte dei tipi di app desktop, in particolare le app console non incluse nel pacchetto, le app Win32, le app Windows Form e le app WPF. L'implementazione Windows app SDK di queste funzionalità non può essere usata nelle app UWP, perché esistono funzionalità equivalenti nella piattaforma UWP stessa.

Le app non UWP possono anche essere inserite in pacchetti MSIX. Anche se queste app possono usare alcune delle funzionalità del ciclo di vita delle app Windows app SDK, devono usare l'approccio manifesto in cui è disponibile. Ad esempio, non possono usare le API Windows App SDK RegisterForXXXActivation e devono invece registrarsi per l'attivazione avanzata tramite il manifesto.

Tutti i vincoli per le app in pacchetto si applicano anche alle app WinUI 3, incluse in un pacchetto, e ci sono considerazioni aggiuntive, come descritto di seguito.

Considerazioni importanti:

  • Attivazione avanzata: GetActivatedEventArgs

  • Registrazione/Annullamento della registrazione per l'attivazione avanzata

    • App non incluse nel pacchetto: completamente utilizzabile.
    • App incluse nel pacchetto: non è possibile usare il manifesto MSIX dell'app.
    • Per altre informazioni, vedere Attivazione avanzata.
  • Creazione di istanze singole/multiple

    • App non incluse nel pacchetto: completamente utilizzabile.
    • App non incluse nel pacchetto: completamente utilizzabile.
    • app WinUI 3: se un'app vuole rilevare altre istanze e reindirizzare un'attivazione, deve farlo il prima possibile e prima di inizializzare qualsiasi finestra e così via. A tale scopo, l'app deve definire DISABLE_XAML_GENERATED_MAIN e scrivere un main personalizzato (C#) o WinMain (C++) in cui può eseguire il rilevamento e il reindirizzamento.
    • RedirectActivationToAsync è una chiamata asincrona e non è consigliabile attendere una chiamata asincrona se l'app è in esecuzione in una STA. Per Windows Form e app WinUI 3 C#, si può dichiarare Main come asincrono, se necessario. Per le app WinUI 3 e C# WPF di C++ non è possibile dichiarare Main come asincrona, quindi è necessario spostare la chiamata di reindirizzamento a un altro thread per assicurarsi di non bloccare la STA.
    • Per altre informazioni, vedi Creazione di istanze dell'app.
  • Notifiche di alimentazione/stato

    • App non incluse nel pacchetto: completamente utilizzabile.
    • App non incluse nel pacchetto: completamente utilizzabile.
    • Per ulteriori informazioni, vedere Risparmio energia.

Problema noto:

Le associazioni tipo di file codificano in modo non corretto %1 come %251 quando si imposta il modello della riga di comando del gestore verbo, che arresta in modo anomalo le app Win32 non incluse nel pacchetto. È possibile modificare manualmente il valore del Registro di sistema in modo che sia %1 come soluzione alternativa parziale. Se il percorso del file di destinazione contiene uno spazio, l'operazione avrà comunque esito negativo e non è disponibile alcuna soluzione alternativa per tale scenario.

Altre limitazioni e problemi noti

  • La versione 1.0 Preview 1 e Preview 2 contiene un bug critico. Se è già stata installata una di queste anteprime, vedere come risolvere il problema. È consigliabile usare invece la versione 1.0 Preview 3 .

  • Questa versione presenta i modelli App vuota, In pacchetto (WinUI 3 in Desktop) per i progetti C# e C++. Questi modelli consentono di compilare l'app in un pacchetto MSIX senza l'uso di un progetto di creazione di pacchetti separato. Questi modelli presentano alcuni problemi noti in questa versione:

    • Modello C# per Visual Studio 2019. Si verifica l'errore quando si tenta di compilare il progetto: "Il progetto non sa come eseguire il nome progetto del profilo". Per risolvere questo problema, installare l'estensione Strumenti di creazione pacchetti MSIX a progetto singolo.

    • Modello C# per Visual Studio 2019 e Visual Studio 2022. Quando si tenta l'esecuzione o si tenta di eseguire il debug del progetto nel computer di sviluppo, si verifica l'errore seguente: "Il progetto deve essere distribuito prima di poter eseguire il debug. Abilitare Distribuisci in Configuration Manager." Per risolvere questo problema, abilitare la distribuzione per il progetto in Configuration Manager. Per istruzioni dettagliate, vedere Creazione del primo progetto di WinUI 3.

    • Modello C++ per Visual Studio 2019 e Visual Studio 2022. In questa versione, questi progetti sono limitati a chiamare il subset di API Win32 che possono essere chiamate dalle app UWP. Il modello App vuota, in pacchetto con WAP (WinUI 3 in Desktop) non è interessato da questo problema.

    • Modello C++ per Visual Studio 2022 versione 17,0 fino alla Preview 4. Si verifica il seguente errore la prima volta che si tenta di eseguire il progetto: "Si sono verificati errori di distribuzione". Per risolvere questo problema, eseguire o distribuire il progetto una seconda volta. Questo problema verrà risolto in Visual Studio 2022 versione 17.0 Preview 5.

  • API notifiche push (spazio dei nomi Microsoft.Windows.PushNotifications) inclusa erroneamente nella versione 1.0 Preview 2. Questa è ancora una funzionalità sperimentale e per usarla è necessario installare invece la versione sperimentale 1.0. Questa funzionalità verrà rimossa dalla prossima versione 1.0.

  • L'API del ciclo di vita dell'app (spazio dei nomi Microsoft.Windows.AppLifecycle) include erroneamente l'attributo Experimental nella versione 1.0 Preview 2. L'attributo Experimental verrà rimosso da questa API nella versione successiva.

  • Nessun supporto per qualsiasi configurazione di compilazione cpu: quando si aggiunge Windows App SDK a un'applicazione o a un componente .NET esistente che supporta Qualsiasi CPU, è necessario specificare l'architettura desiderata: x86 o x64arm64.

  • +I progetti C# che usano la versione 1.0 Preview 2 devono usare il seguente .NET SDK: .NET 6 SDK o versione successiva (vedere Download .NET e .NET 5 raggiungeranno la fine del supporto il 10 maggio 2022).

  • Un'alternativa a DispatcherQueue.TryEnqueue (per riprendere l'esecuzione nel thread della coda del dispatcher) consiste nell'usare la funzione helper resume_foreground nella Libreria di implementazione di Windows (WIL):

    1. Per prima cosa, aggiungere un riferimento al progetto al pacchetto NuGet Microsoft.Windows.ImplementationLibrary.
    2. Aggiungere #include <wil/cppwinrt_helpers.h> al proprio pch.h.
    3. Aggiungere #include <winrt/Microsoft.UI.Dispatching.h> al proprio pch.h.
    4. Ora co_await wil::resume_foreground(your_dispatcherqueue);.

Versione 1.0 Anteprima (1.0.0-preview1)

Importante

La versione 1.0 Preview 1 e Preview 2 contiene un bug critico. Se è già stata installata una di queste anteprime, vedere come risolvere il problema. È consigliabile usare invece la versione 1.0 Preview 3 .

Questa è la prima versione del canale di anteprima per la versione 1.0. Supporta tutte le funzionalità del canale di anteprima.

Nelle sezioni seguenti vengono descritte le funzionalità nuove e aggiornate, le limitazioni e i problemi noti di questa versione.

WinUI 3

Questa versione di WinUI 3 è incentrata sulla compilazione verso la versione 1.0 con correzioni di bug.

  • Nuove funzionalità Nessuna nuova funzionalità nell'anteprima 1.
  • Problemi corretti: per l'elenco completo dei problemi risolti in questa versione, vedere il nostro repository GitHub.

Per altre informazioni o per iniziare a sviluppare con WinUI 3, vedere:

Windowing

Questa versione porta l'API Windowing introdotta in Experimental 1 a uno stato di anteprima. In questa versione non sono presenti nuove aree principali in quanto sono incentrate su correzioni di bug, stabilità e modifiche alla firma dell'API. Le modifiche e le aggiunte degne di nota sono indicate di seguito.

Nuove funzionalità:

  • DisplayAreaWatcher è stato aggiunto alle API windowing. Questa funzionalità consente a uno sviluppatore di osservare le modifiche nella topologia di visualizzazione ed enumerare le DisplayAreas attualmente definite nel sistema.
  • AppWindow supporta ora l'impostazione dell'icona della finestra tramite il metodo SetIcon mentre AppWindowTitleBar supporta ora la selezione della selezione della visualizzazione/nascondere l'icona della finestra insieme al menu di sistema tramite la proprietà IconShowOptions .

Limitazioni importanti:

  • Questa versione di AppWindow è attualmente disponibile solo per le app Win32 (incluse nel pacchetto e non incluse nel pacchetto).
  • Al momento Windows App SDK non fornisce metodi per collegare il contenuto del framework dell'interfaccia utente a un AppWindow; è possibile usare solo i metodi di accesso di interoperabilità.
  • La personalizzazione della barra del titolo della finestra funziona solo in Windows 11. Usare il metodo IsCustomizationSupported per verificare il supporto delle funzionalità di personalizzazione della barra del titolo. L'intento è di portare questa funzionalità a un livello inferiore.

Per altre informazioni, vedere Gestisci finestre delle app.

Input

Questa versione introduce alcune nuove funzionalità nell'API input. Le modifiche e le aggiunte degne di nota sono indicate di seguito.

Nuove funzionalità e aggiornamenti

  • PointerPredictor offre applicazioni sensibili alla latenza di input, come le applicazioni di inchiostrazione, la possibilità di prevedere le posizioni dei punti di input fino a 15 ms in futuro, per ottenere una latenza migliore e un'animazione fluida.
  • PenDeviceInterop consente di acquisire un riferimento a Windows.Devices.Input.PenDevice usando il metodo FromPointerPoint .
  • InputCursor fornisce una distinzione esplicita tra i tipi di cursore di sistema predefiniti e i tipi di cursore personalizzati rimuovendo il tipo "Personalizzato" già disponibile in CoreCursor, e suddividendo l'oggetto CoreCursor in oggetti separati.
  • Aggiornamenti a API InputCursor.
  • GestureRecognizer è stato spostato da sperimentale a Microsoft.UI.Input.
  • PointerPoint è stato spostato da experimental a Microsoft.UI.Input.
  • Input tramite mouse, tocco e penna completamente supportato per il trascinamento della selezione di WinUI 3.

Limitazioni importanti:

  • Questa versione delle API di input presenta problemi noti con Windows versione 1809.
  • MRT Core non è ancora supportato da alcun sottotipo di InputCursor.
  • L'uso diretto dell'API dell'SDK della piattaforma Windows.UI.Core.CoreDragOperation non funzionerà con le applicazioni WinUI 3.
  • Le proprietà PointerPoint RawPosition e ContactRectRaw sono state rimosse perché hanno fatto riferimento a valori non stimati, che erano uguali ai valori normali nel sistema operativo. Utilizzare invece Position e ContactRect. La stima del puntatore viene ora gestita con l'oggetto API Microsoft.UI.Input.PointerPredictor .

MRT Core

A partire dalla versione 1.0 Preview 1, le API MRT Core sono state spostate dallo spazio dei nomi Microsoft.ApplicationModel.Resources allo spazio dei nomi Microsoft.Windows.ApplicationModel.Resources .

Altre limitazioni e problemi noti

  • La versione 1.0 Preview 1 e Preview 2 contiene un bug critico. Se è già stata installata una di queste anteprime, vedere come risolvere il problema. È consigliabile usare invece la versione 1.0 Preview 3 .

  • Per impostazione predefinita, i progetti creati usando App vuota, inclusa nel pacchetto con WAP (WinUI 3 in Desktop) per C++ riscontrano il seguente errore di compilazione: fatal error C1083: Cannot open include file: 'winrt/microsoft.ui.dispatching.co_await.h': No such file or directory. Per risolvere questo problema, rimuovere la riga di codice seguente dal file pch.h. Questo problema verrà risolto nella prossima versione.

    #include <winrt/microsoft.ui.dispatching.co_await.h>
    
  • Un'alternativa a DispatcherQueue.TryEnqueue (per riprendere l'esecuzione nel thread della coda del dispatcher) consiste nell'usare la funzione helper resume_foreground nella Libreria di implementazione di Windows (WIL):

    1. Per prima cosa, aggiungere un riferimento al progetto al pacchetto NuGet Microsoft.Windows.ImplementationLibrary.
    2. Aggiungere #include <wil/cppwinrt_helpers.h> al proprio pch.h.
    3. Aggiungere #include <winrt/Microsoft.UI.Dispatching.h> al proprio pch.h.
    4. Ora co_await wil::resume_foreground(your_dispatcherqueue);.
  • Nessun supporto per la configurazione di compilazione Qualsiasi CPU: Windows App SDK viene scritto nel codice nativo e pertanto non supporta le configurazione di compilazione Qualsiasi CPU. I modelli WinUI 3 in Visual Studio consentono solo compilazioni specifiche per l'architettura. Quando si aggiunge Windows App SDK a un'applicazione o a un componente .NET esistente che supporta Qualsiasi CPU, è necessario specificare l'architettura desiderata: x86o x64arm64.

  • Le app .NET devono avere come destinazione la build 18362 o successive: il TFM deve essere impostato su net6.0-windows10.0.18362 o successive e la <TargetPlatformVersion> del progetto di creazione del pacchetto su 18362 o successive. Per altre informazioni, vedere il problema noto su GitHub.

  • +I progetti C# che usano la versione 1.0 Preview 1 devono usare il seguente .NET SDK: .NET 6 SDK o versione successiva (vedere Download .NET e .NET 5 raggiungeranno la fine del supporto il 10 maggio 2022).

  • App senza pacchetti non supportate in Windows 10 versione 1809: questa operazione deve essere risolta nella versione successiva.