Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Windows 10 build 10240 e l'SDK aggiornato forniscono strumenti, funzionalità ed esperienze per rendere straordinarie app della piattaforma UWP (Universal Windows Platform). Dopo aver installato gli strumenti e gli SDK su Windows 10, puoi creare una nuova app universale di Windows o scoprire come usare il tuo codice dell'app esistente su Windows.
Ecco uno sguardo funzione per funzione sulle novità di Windows 10 build 10240 (nota anche come Windows 10 versione 1507).
Layout adattivi
Caratteristica / Funzionalità | Descrizione |
---|---|
Più visualizzazioni per contenuto personalizzato | XAML offre un nuovo supporto per la definizione di visualizzazioni personalizzate (file con estensione xaml) che condividono lo stesso file di codice. In questo modo è più semplice creare e gestire visualizzazioni diverse personalizzate per una famiglia di dispositivi o uno scenario specifico. Se l'app ha contenuti, layout o modelli di spostamento distinti dell'interfaccia utente che sono drasticamente diversi per scenari diversi, creare più visualizzazioni. Ad esempio, potresti usare un Pivot con navigazione ottimizzata per l'uso con una sola mano nell'app mobile, ma usare un SplitView con un menu di navigazione ottimizzato per il mouse nell'app desktop. |
StateTriggers | Usando la nuova funzionalità di VisualState.StateTriggers, è possibile impostare in modo condizionale le proprietà in base all'altezza/larghezza della finestra o in base a un trigger personalizzato. In precedenza, era necessario gestire gli eventi Size Changed |
Setter | Usando la nuova sintassi VisualState.Setters |
Funzionalità XAML
Caratteristica / Funzionalità | Descrizione |
---|---|
Data binding compilati (x:Bind) | Nelle app di Windows universali è possibile usare il nuovo meccanismo di associazione basato sul compilatore abilitato dalla proprietà x:Bind. Le associazioni basate sul compilatore sono fortemente tipizzate e vengono elaborate in fase di compilazione, il che non solo accelera il processo, ma consente anche di individuare errori durante la compilazione quando c'è una mancata corrispondenza dei tipi. Inoltre, poiché le associazioni vengono convertite nel codice dell'app compilato, è ora possibile eseguire il debug delle associazioni eseguendo il codice in Visual Studio per diagnosticare problemi di associazione specifici. È anche possibile usare x:Bind per eseguire l'associazione a un metodo, come illustrato di seguito: <textblock text="{x:Bind Customer.Address.ToString()}" /> Per scenari di binding tipici, è possibile usare x:Bind al posto di Binding e ottenere prestazioni e manutenibilità migliorate. |
Rendering incrementale dichiarativo degli elenchi (x:Phase) | Nelle app di Windows universali, il nuovo attributo x:Phase consente di eseguire il rendering incrementale o in più fasi degli elenchi usando XAML anziché codice. Quando si esegue la panoramica di elenchi lunghi con elementi complessi, l'app potrebbe non essere in grado di eseguire il rendering degli elementi abbastanza velocemente per mantenere il passo con la velocità di panoramica, producendo un'esperienza scarsa per gli utenti. Il rendering in più fasi consente di specificare la priorità di rendering dei singoli elementi in una voce di elenco, quindi solo le parti più importanti dell'elemento di elenco vengono visualizzate in scenari di panoramica rapida. In questo modo si ottiene un'esperienza di panoramica più fluida per l'utente. In Windows 8.1 è possibile gestire l'evento ContainerContentChanging e scrivere codice per eseguire il rendering degli elementi dell'elenco in fasi. Nelle app UWP puoi eseguire il rendering in più fasi in modo dichiarativo usando l'attributo x:Phase. Usato insieme alle associazioni compilate x:Bind, x:Phase consente di specificare facilmente una priorità di rendering per ogni elemento associato in un modello di dati. Quando si esegue la panoramica, il lavoro per il rendering degli elementi viene suddiviso in base alla fase, il che consente il rendering incrementale degli elementi. |
Caricamento posticipato degli elementi dell'interfaccia utente (x:deferLoadstrategy) | Nelle app di Windows universali, la nuova direttiva x:deferLoadstrategy consente di specificare parti dell'interfaccia utente da caricare in ritardo, migliorando le prestazioni di avvio e riducendo l'utilizzo della memoria dell'app. Ad esempio, se l'interfaccia utente dell'app ha un elemento per la convalida dei dati visualizzata solo quando vengono immessi dati non corretti, puoi ritardare il caricamento di tale elemento fino a quando non è necessario. Gli oggetti elemento non vengono quindi creati quando viene caricata la pagina; Vengono invece creati solo quando si verifica un errore di dati e devono essere aggiunti alla struttura ad albero visuale della pagina. |
SplitView | Il nuovo controllo SplitView consente di visualizzare e nascondere facilmente il contenuto temporaneo. Viene comunemente usato per scenari di spostamento di primo livello come il "menu hamburger", in cui il contenuto di spostamento è nascosto e scorre quando necessario come risultato di un'azione dell'utente. |
Pannello Relativo | RelativePanel è un nuovo pannello di layout che consente di posizionare e allineare gli elementi figlio rispetto l'uno all'altro o al pannello padre. Ad esempio, è possibile specificare che un testo deve essere sempre posizionato sul lato sinistro del pannello e un pulsante deve essere sempre allineato sotto il testo. Usare ReleativePanel quando si creano interfacce utente che non hanno un modello lineare chiaro che richiederebbe l'uso di un StackPanel o Grid. |
Vista Calendario | Il controllo CalendarView consente di visualizzare e selezionare facilmente date e intervalli di date usando una visualizzazione personalizzabile basata su mese. CalendarView supporta funzionalità quali date minime, massime e di black-out per limitare le date che è possibile selezionare. È anche possibile impostare barre di densità personalizzate che possono essere usate per mostrare la "pienezza" generale della pianificazione in un determinato giorno. |
Selettore di Data del Calendario |
CalendarDatePicker è un controllo a discesa ottimizzato per la selezione di una singola data da un oggetto CalendarView in cui le informazioni contestuali, ad esempio il giorno della settimana o l'interezza del calendario, sono importanti. È simile al controllo |
MediaTransportControls | La nuova classe MediaTransportControls semplifica la personalizzazione dei controlli di trasporto di un MediaElement. In Windows 8.1 è possibile abilitare i controlli di trasporto predefiniti di MediaElement o creare controlli di trasporto personalizzati che chiamano metodi MediaElement. Ora è possibile usare la funzionalità predefinita di MediaTransportControls e personalizzare facilmente l'aspetto in base all'app. |
Notifiche di modifica delle proprietà | Nelle app di Windows universali è possibile monitorare le modifiche delle proprietà su DependencyObject, anche per le proprietà che non hanno eventi di modifica corrispondenti. La notifica opera come un evento, ma in realtà viene esposta come callback. Il callback accetta un argomento mittente proprio come un gestore eventi, ma non accetta un argomento evento. Viene invece passato solo l'identificatore della proprietà per indicare quale proprietà. Con queste informazioni l'app può definire un singolo gestore per notifiche su più proprietà. Per altre info, vedi RegisterPropertyChangedCallback e UnregisterPropertyChangedCallback. |
Mappe | La classe MapControl |
Mappatura pulsanti di input | La classe Windows.UI.Xaml.Input.KeyEventArgs ha una nuova proprietà OriginalKey che, insieme a un aggiornamento corrispondente a Windows.System.VirtualKey, consente di ottenere il pulsante di input originale e non mappato associato all'evento di input della tastiera. |
Inchiostrazione | È ora più semplice usare la robusta funzionalità di inchiostrazione nelle app di Windows Runtime con C++, C# o Visual Basic, grazie al controllo InkCanvas e alle classi sottostanti InkPresenter. Il controllo InkCanvas definisce un'area sovrapposta per il disegno e il rendering dei tratti di inchiostro. La funzionalità per questo controllo (input, elaborazione e rendering) deriva dalle classi InkPresenter, InkStroke, InkRecognizerse InkSynchronizer. Importante: Queste classi non sono supportate nelle app di Windows che usano JavaScript. |
Funzionalità XAML aggiornate
Caratteristica / Funzionalità | Descrizione |
---|---|
Aggiornamenti di CommandBar e AppBar | I controlli CommandBar Il controllo CommandBar per le app di Windows universali è stato migliorato per offrire un superset di funzionalità AppBar e maggiore flessibilità nel modo in cui puoi usarlo nella tua app. Devi usare CommandBar per tutte le nuove app di Windows universali in Windows 10. In una CommandBar di Windows 8.1, è possibile utilizzare solo controlli che implementano ICommandBarElement, come AppBarButton. Nelle app di Windows universali è ora possibile inserire contenuto personalizzato in CommandBar oltre ad AppBarButtons. Il controllo AppBar è stato aggiornato per consentire di spostare più facilmente le app di Windows 8.1 che usano AppBar nella piattaforma UWP (Universal Windows Platform). AppBar è stato progettato per essere usato con app a schermo intero e per essere richiamato usando i movimenti dei bordi. Aggiornamenti all'account di amministrazione per problemi quali le applicazioni in finestra e la mancanza di gesti ai bordi in Windows 10. La Hidden AppBar.ClosedDisplayMode, in precedenza solo in Windows Phone, è ora supportata in tutte le famiglie di dispositivi, consentendo di scegliere tra diversi livelli di hint per i comandi. AppBar mostra un suggerimento minimo per impostazione predefinita per garantire coerenza durante l'aggiornamento delle app di Windows 8.1 alle app universali per Windows, dove non puoi più fare affidamento sul supporto dei gesti di bordo nella piattaforma. |
Aggiornamenti di GridView | Prima di Windows 10, l'orientamento predefinito del layout gridView era orizzontale in Windows e verticale in Windows Phone. Nelle app UWP, il GridView utilizza un layout verticale per impostazione predefinita per tutte le famiglie di dispositivi, garantendo un'esperienza predefinita coerente. |
Proprietà AreStickyGroupHeadersEnabled | Quando si visualizzano dati raggruppati in un ListView o GridView, le intestazioni di gruppo rimangono visibili quando si scorre l'elenco. Questo aspetto è importante nei set di dati di grandi dimensioni in cui l'intestazione fornisce il contesto per i dati visualizzati dall'utente. Tuttavia, nei casi in cui sono presenti solo alcuni elementi in ogni gruppo, potresti voler che le intestazioni scorrano fuori dallo schermo insieme agli elementi. È possibile impostare la proprietà AreStickyGroupHeadersEnabled in ItemsStackPanel e ItemsWrapGrid per controllare questo comportamento. |
Metodo GroupHeaderContainerFromItemContainer | Quando vengono visualizzati dati raggruppati in un ItemsControl, è possibile chiamare il metodo GroupHeaderContainerFromItemContainer per ottenere un riferimento all'intestazione padre per il gruppo. Ad esempio, se un utente elimina l'ultimo elemento in un gruppo, è possibile ottenere un riferimento all'intestazione del gruppo e rimuovere sia l'elemento che l'intestazione di gruppo insieme. |
Evento ChoosingGroupHeaderContainer | Il nuovo evento ChoosingGroupHeaderContainer in ListViewBase consente di impostare lo stato sulle intestazioni di gruppo in un ListView o GridView. Ad esempio, è possibile gestire questo evento per impostare il AutomationProperties.Nameproperty nell'intestazione del gruppo affinché rappresenti il gruppo nelle tecnologie assistive. |
Evento ChoosingItemContainer | Il nuovo evento ChoosingItemContainer in ListViewBase offre un maggiore controllo sulla virtualizzazione dell'interfaccia utente in un ListView o GridView. Usare questo evento insieme all'evento ContainerContentChanging per mantenere la propria coda di contenitori riciclati da cui attingere secondo necessità. Ad esempio, se l'origine dati è stata reimpostata a causa dell'applicazione di un filtro, è possibile associare rapidamente un set di oggetti visivi già creato (ItemContainers) con i relativi dati per massimizzare le prestazioni. |
La virtualizzazione dello scorrimento dell'elenco | I controlli ListView e GridView dispongono di un nuovo evento ListViewBase.ChoosingItemContainer che migliora le prestazioni del controllo quando si verifica una modifica nella collezione di dati. Invece di eseguire una reimpostazione completa dell'elenco, che riproduce l'animazione di ingresso, il sistema ora mantiene gli elementi attualmente in visualizzazione, insieme allo stato attivo e di selezione; gli elementi nuovi e rimossi nel riquadro di visualizzazione si animano in modo uniforme. Dopo una modifica nella raccolta dei dati in cui i contenitori non vengono distrutti, un'app può rapidamente trovare le corrispondenze tra gli elementi "vecchi" e il loro contenitore precedente ed evitare l'ulteriore elaborazione dei metodi di override del ciclo di vita del contenitore. Solo gli elementi "nuovi" vengono elaborati e associati a contenitori riciclati o nuovi. |
Metodo SelectRange e proprietà SelectedRanges | Nelle app di Windows universali, i controlli ListView e GridView consentono ora di selezionare gli elementi in termini di intervalli di indici degli elementi anziché riferimenti agli oggetti degli elementi. Si tratta di un modo più efficiente per descrivere la selezione degli elementi perché non è necessario creare oggetti elemento per ogni elemento selezionato. Per altre info, vedi ListViewBase.SelectedRanges, ListViewBase.SelectRangee ListViewBase.DeselectRange. |
Nuove API "ListViewItemPresenter" | ListView e GridView usano i presentatori di elementi per fornire gli oggetti visivi predefiniti per la selezione e lo stato attivo. Nelle app UWP, listViewItemPresenter e GridViewItemPresenter hanno nuove proprietà che consentono di personalizzare ulteriormente gli oggetti visivi per gli elementi dell'elenco. Le nuove proprietà sono CheckBoxBrush, CheckMode, FocusSecondaryBorderBrush, PointerOverForeground, PressedBackground e SelectedPressedBackground. |
Aggiornamenti di SemanticZoom | Il controllo SemanticZoom ora ha un comportamento coerente per le app UWP in tutte le famiglie di dispositivi. L'azione predefinita per passare dalla visualizzazione ingrandita alla visualizzazione ridotta consiste nel toccare l'intestazione di un gruppo nella visualizzazione ingrandita. Si tratta dello stesso comportamento di Windows Phone 8.1, ma è una modifica rispetto a Windows 8.1, che ha usato il movimento di avvicinamento delle dita per eseguire lo zoom. Per modificare le visualizzazioni usando lo zoom mediante pizzicamento, impostare ScrollViewer.ZoomMode="Enabled" nello ScrollViewer interno di SemanticZoom. Per le app di Windows universali, la visualizzazione ridotta sostituisce la visualizzazione ingrandita e ha le stesse dimensioni della visualizzazione sostituita. Questo è lo stesso comportamento di Windows 8.1, ma è una modifica rispetto a Windows Phone 8.1, in cui la visualizzazione ingrandita ha preso le dimensioni complete dello schermo ed è stato eseguito il rendering su tutti gli altri contenuti. |
Aggiornamenti di DatePicker e TimePicker | I controlli DatePicker e TimePicker hanno ora un'implementazione coerente per le app di Windows universali in tutte le famiglie di dispositivi. Hanno anche un nuovo aspetto per Windows 10. La parte popup del controllo ora utilizza i controlli DatePickerFlyout e TimePickerFlyout su tutti i dispositivi. Si tratta dello stesso comportamento su Windows Phone 8.1, ma rappresenta una modifica rispetto a Windows 8.1, che utilizzava i controlli ComboBox . L'uso dei controlli a comparsa consente di creare facilmente le selezioni di data e ora personalizzate. |
Nuove API ScrollViewer | ScrollViewer dispone di nuovi eventi DirectManipulationStarted e DirectManipulationCompleted per informare l'app dell'avvio e dell'arresto della panoramica tramite tocco. È possibile gestire questi eventi per coordinare l'interfaccia utente con queste azioni utente. |
Aggiornamenti di MenuFlyout | Nelle app di Windows universali sono disponibili nuove API che consentono di creare più facilmente menu di scelta rapida migliori. Il nuovo metodo MenuFlyout.ShowAt consente di specificare dove visualizzare il riquadro a comparsa in relazione a un altro elemento. (E il tuo MenuFlyout può anche sovrapporsi ai limiti della finestra della tua app.) Usa la nuova classe MenuFlyoutSubItem per creare menu a cascata. |
Nuove proprietà Border per ContentPresenter, Grid e StackPanel | I controlli contenitore comuni hanno nuove proprietà del bordo che consentono di disegnare un bordo intorno a essi senza aggiungere un elemento Border aggiuntivo al codice XAML. ContentPresenter, Gride StackPanel hanno queste nuove proprietà: BorderBrush, BorderThickness, CornerRadius e Padding. |
Nuove API di testo in ContentPresenter | ContentPresenter include nuove API che offrono maggiore controllo sulla visualizzazione del testo: LineHeight, LineStackingStrategy, MaxLines e TextWrapping. |
Elementi visivi del focus del sistema | Gli indicatori visivi per i controlli XAML sono ora creati dal sistema, invece di essere dichiarati come elementi XAML nel modello di controllo. Gli elementi visivi di messa a fuoco non sono generalmente necessari sui dispositivi mobili. Lasciando al sistema il compito di crearli e gestirli in base alle esigenze si migliorano le prestazioni dell'app. Se hai bisogno di un maggiore controllo sugli elementi visivi del focus, puoi eseguire l'override del comportamento del sistema e fornire un modello di controllo personalizzato che definisce tali elementi. Per altre informazioni, vedi UseSystemFocusVisuals e IsTemplateFocusTarget. |
PasswordBox.PasswordRevealMode | Nelle app di Windows universali, la proprietà |
Control.IsTextScaleFactorEnabled | La proprietà IsTextScaleFactorEnabled che era disponibile in Windows Phone 8.1 è ora disponibile per le app di Windows universali in tutte le famiglie di dispositivi. |
Casella di Suggerimenti Automatici | Il controllo AutoSuggestBox da Windows Phone 8.1 è ora disponibile per le app di Windows Universali su tutti i tipi di dispositivi ed è consigliabile usarlo al posto di SearchBox. AutoSuggestBox fornisce suggerimenti mentre l'utente digita, e funziona bene con vari tipi di input, come il tocco, la tastiera e gli Editor di Metodi di Input. Include anche alcuni nuovi membri per migliorarne il funzionamento come casella di ricerca: la proprietà QueryIcon e l'evento QuerySubmitted. |
Finestra di dialogo dei contenuti | Il controllo ContentDialog di Windows Phone 8.1 è ora disponibile per le app di Windows Universal in tutte le famiglie di dispositivi. ContentDialog consente di visualizzare una finestra di dialogo modale personalizzabile che funziona in modo ottimale nell'intero spettro dei dispositivi. |
Punto di svolta | Il controllo Pivot di Windows Phone 8.1 è ora disponibile per le app Windows universali in tutte le famiglie di dispositivi. È ora possibile usare lo stesso controllo Pivot nell'app per dispositivi mobili e desktop. Pivot offre un comportamento adattivo basato sulle dimensioni dello schermo e sul tipo di input. È possibile applicare uno stile a un controllo Pivot per fornire un comportamento simile a tabulazioni, con visualizzazioni diverse di informazioni in ogni elemento pivot. |
Testo
Caratteristica / Funzionalità | Descrizione |
---|---|
API di base di Windows per il testo | Il nuovo spazio dei nomi Windows.UI.Text.Core include un sistema client-server che centralizza l'elaborazione dell'input da tastiera in un singolo server. È possibile usarlo per modificare il buffer di modifica del controllo di input di testo personalizzato. Il server di input di testo garantisce che il contenuto del controllo dell'input di testo e quello del buffer di modifica interno siano sempre sincronizzati, tramite un canale di comunicazione asincrono tra l'app e il server. |
Icone vettoriali | L'elemento Glyphs ha le nuove proprietà IsColorFontEnabled e ColorFontPalleteIndex per supportare i font a colori; ora puoi utilizzare un file di font per eseguire il rendering delle icone basate su tipi di carattere. Quando si usa ColorFontPalleteIndex per il cambio di tavolozza dei colori, è possibile eseguire il rendering di una singola icona con set di colori diversi; Ad esempio, per visualizzare una versione abilitata e disabilitata dell'icona. |
Eventi della finestra dell'Editor dei metodi di input | Gli utenti a volte immettono testo tramite un Input Method Editor che viene visualizzato in una finestra appena sotto una casella di input di testo (in genere per le lingue dell'Asia orientale). È possibile usare l'evento CandidateWindowBoundsChanged e la proprietà DesiredCandidateWindowAlignment su TextBox e RichEditBox per migliorare l'integrazione dell'interfaccia utente dell'app con la finestra IME. |
Eventi di composizione del testo | TextBox e RichEditBox hanno nuovi eventi per informare la tua app quando il testo è composto usando un Editor di Metodo di Input: TextCompositionStarted, TextCompositionEnded e TextCompositionChanged. Puoi gestire questi eventi per coordinare il codice dell'app con il processo di composizione del testo IME. Ad esempio, è possibile implementare la funzionalità di completamento automatico in linea per le lingue dell'Asia orientale. |
Gestione migliorata del testo bidirezionale | I controlli di testo XAML hanno una nuova API per migliorare la gestione del testo bidirezionale, con conseguente migliore allineamento del testo e direzionalità dei paragrafi in un'ampia gamma di linguaggi di input. Il valore predefinito della proprietà TextReadingOrder è stato modificato in DetectFromContent, quindi il supporto per il rilevamento dell'ordine di lettura è abilitato per impostazione predefinita. La proprietà TextReadingOrder è stata aggiunta anche a PasswordBox, RichEditBox e TextBox. È possibile impostare la proprietà TextAlignment nei controlli di testo sul nuovo valore DetectFromContent per acconsentire esplicitamente all'allineamento rilevato automaticamente dal contenuto. |
Rendering del testo | In Windows 10 il testo nelle app XAML viene ora reso, nella maggior parte dei casi, a una velocità quasi doppia rispetto a Windows 8.1. Nella maggior parte dei casi, le app trarranno vantaggio da questo miglioramento senza modifiche. Oltre al rendering più rapido, questi miglioramenti riducono anche il consumo tipico di memoria delle app XAML di 5%. |
Modello di applicazione
Caratteristica / Funzionalità | Descrizione |
---|---|
Cortana | Estendere la funzionalità di base di Cortana con comandi vocali che avviano ed eseguono una singola azione in un'applicazione esterna. Integrando la funzionalità di base dell'app e fornendo un punto di ingresso centrale per consentire all'utente di eseguire la maggior parte delle attività senza aprire direttamente l'app, Cortana può fungere da collegamento tra l'app e l'utente. In molti casi, questo può risparmiare tempo e impegno significativi per l'utente. Scopri come integrare la tua app nell'area di disegno di Cortana. Se hai bisogno di idee, puoi fare riferimento alle raccomandazioni di progettazione e alle linee guida per l'esperienza utente specifiche di Cortana nelle nozioni di base sulla progettazione di per le app di Windows universali. |
Esplora file | I nuovi metodi Windows.System.Launcher.LaunchFolderAsync consentono di avviare Esplora file e visualizzano il contenuto di una cartella specificata. |
Archiviazione condivisa | La nuova classe Windows.ApplicationModel.DataTransfer.SharedStorageAccessManager e i relativi metodi consentono di condividere un file con un'altra app passando un token di condivisione quando si avvia l'altra app usando l'attivazione URI. L'app di destinazione riscatta il token per ottenere il file condiviso dall'app di origine. |
Impostazioni | Visualizzare le pagine delle impostazioni predefinite usando il protocollo ms-settings con il metodo LaunchUriAsync. Ad esempio, il codice seguente visualizza la pagina delle impostazioni di Wi-Fi: bool risultato = await Launcher.LaunchUriAsync(new Uri("ms-settings://network/wifi")); Per un elenco delle pagine delle impostazioni che è possibile visualizzare, vedere Come visualizzare le pagine delle impostazioni predefinite usando il protocollo ms-settings. |
Comunicazione da app a app | Le nuove API di comunicazione da app a app in Windows 10 consentono alle applicazioni Windows (nonché alle applicazioni Web Windows) di avviarsi tra loro e scambiare dati e file. Usando queste nuove API, le attività complesse che avrebbero richiesto all'utente di usare più applicazioni possono ora essere gestite senza problemi. Ad esempio, l'app potrebbe avviare un'app di social networking per scegliere un contatto o avviare un'applicazione di pagamento per completare un processo di pagamento. |
Servizi app | Un servizio app è un modo per consentire a un'app di fornire servizi ad altre app in Windows 10. Un servizio app ha la forma di un'attività in background. Le app in primo piano possono chiamare un servizio app in un'altra app per eseguire attività in background. Per informazioni di riferimento sull'API del servizio app, vedere Windows.ApplicationModel.AppService. |
Manifesto del pacchetto dell'app | Gli aggiornamenti del riferimento dello schema del manifesto del pacchetto per Windows 10 includono elementi che sono stati aggiunti, rimossi e modificati. Per informazioni di riferimento su tutti gli elementi, gli attributi e i tipi nello schema, vedere Element Hierarchy. |
Dispositivi
Caratteristica / Funzionalità | Descrizione |
---|---|
Microsoft Surface Hub | Microsoft Surface Hub è un potente dispositivo di collaborazione in team e una piattaforma di grandi dimensioni per le app di Windows universali eseguite in modo nativo da Surface Hub o dal dispositivo connesso. Costruisci le tue app, progettate appositamente per la tua azienda, che utilizzano lo schermo di grandi dimensioni, l'input touch e penna e ampio hardware integrato, come fotocamere e sensori. Esamina le raccomandazioni di design e le linee guida UX specifiche per Surface Hub in Nozioni di base sul design per le app UWP. Questi documenti illustrano le tecniche di progettazione reattiva per le app di Windows universali. Per informazioni dettagliate sul supporto delle app condivise comuni, vedere SharedModeSettings. Per l'input inchiostro e i dettagli sul supporto per l'inchiostrazione multipunto nel nuovo InkCanvas controllo, consultare Windows.UI.Input.Inking e Windows.UI.Input.Inking.Core. Per la gestione dell'input del sensore, vedere Integrazione di dispositivi, stampanti e sensori. |
Posizione | Windows 10 introduce un nuovo metodo per richiedere all'utente l'autorizzazione per accedere alla propria posizione, RequestAccessAsync. L'utente imposta la privacy dei dati sulla posizione nelle impostazioni di privacy della posizione nell'app Impostazioni . L'app può accedere alla posizione dell'utente solo quando: Posizione per questo dispositivo è attivata (non applicabile per Windows 10 per i telefoni), l'impostazione dei servizi di posizione "Posizione" è attivata e sotto Scegliere le app che possono usare la posizione, l'app è impostata su attivata. È importante chiamare RequestAccessAsync prima di accedere alla posizione dell'utente. In quel momento, l'app deve trovarsi in primo piano e RequestAccessAsync deve essere chiamata dal thread dell'interfaccia utente. Finché l'utente non concede all'app l'autorizzazione per la propria posizione, l'app non può accedere ai dati sulla posizione. |
AllJoyn | Lo spazio dei nomi Windows.Devices.AllJoyn Windows Runtime presenta l'implementazione di Microsoft del framework software open source e dei relativi servizi AllJoyn. Queste API consentono all'app per dispositivi di Windows Universale di interagire con altri dispositivi in scenari basati su AllJoyn e sull'Internet delle cose (IoT). Per altre informazioni sulle API C AllJoyn, scaricare la documentazione all'indirizzo The AllSeen Alliance. Usa lo strumento AllJoynCodeGen incluso in questa versione per generare un componente di Windows che puoi usare per abilitare gli scenari AllJoyn nell'app per dispositivi. Nota: Windows 10 IoT Core è ora disponibile per una nuova classe di dispositivi di piccole dimensioni, consentendo di creare dispositivi "Internet delle cose" (IoT) con Windows e Visual Studio. Scopri di più su Windows IoT nel Windows Dev Center. |
API di stampa su dispositivi mobili (XAML) | È disponibile un unico set unificato di API che ti consentono di stampare dalle app UWP basate su XAML tra famiglie di dispositivi, inclusi i dispositivi mobili. È ora possibile aggiungere la stampa all'app per dispositivi mobili usando le API familiari correlate alla stampa dai namespace Windows.Graphics.Printing e Windows.UI.Xaml.Printing. |
Batteria | Le API della batteria nello spazio dei nomi Windows.Devices.Power consentono all'app di ottenere altre informazioni sulle batterie connesse al dispositivo che esegue l'app. Creare un oggetto batteria per rappresentare un singolo controller di batteria o un'aggregazione di tutti i controller di batteria (quando creati rispettivamente da FromIdAsync o AggregateBattery). Utilizzare il metodo GetReport |
Dispositivi MIDI | Il nuovo spazio dei nomi Windows.Devices.Midi consente di creare A=apps in grado di comunicare con dispositivi MIDI esterni, app e dispositivi esterni che comunicano direttamente con il sintetizzatore software MIDI Microsoft GS e scenari in cui più client accedono simultaneamente a una singola porta MIDI. |
Supporto di sensori personalizzati | Lo spazio dei nomi Windows.Devices.Sensors.Custom consente agli sviluppatori hardware di definire nuovi tipi di sensori personalizzati, ad esempio un sensore di CO2. |
Emulazione di carta basata su host (HCE) | L'emulazione delle schede host consente di implementare i servizi di emulazione di carte NFC ospitati nel sistema operativo e di poter comunicare con il terminale lettore esterno tramite la radio NFC. Per attivare un'attività in background per emulare una smart card tramite NFC, usare la classe SmartCardTrigger . Il valore EmulatorHostApplicationActivated nell'enumerazione SmartCardTriggerType indica alla vostra app che si è verificato un evento HCE. |
Grafica
Caratteristica / Funzionalità | Descrizione |
---|---|
DirectX | DirectX 12 in Windows 10 introduce la prossima versione di Microsoft Direct3D, l'API grafica 3D al centro di DirectX. Grafica Direct3D 12 consente l'efficienza e le prestazioni di un'API di livello basso simile a quello delle console. Direct3D 12 è più veloce e più efficiente che mai. Consente scene più avanzate, più oggetti, effetti più complessi e un uso migliore dell'hardware grafico moderno. |
SoftwareBitmapSource | Nelle app di Windows universali puoi usare il nuovo tipo di SoftwareBitmapSource come origine dell'immagine XAML. In questo modo puoi passare immagini non codificate al framework XAML per essere immediatamente visualizzate sullo schermo, ignorando la decodifica dell'immagine dal framework XAML. È possibile ottenere un rendering delle immagini molto più veloce, ad esempio il rendering di foto a basso ritardo direttamente dalla fotocamera, usando decodificatori di immagini personalizzati, acquisendo fotogrammi da superfici DirectX o anche creando immagini in memoria da zero e eseguendone il rendering direttamente in XAML con bassa latenza e sovraccarico di memoria ridotto. |
Fotocamera prospettica | Nelle app universali di Windows, la nuova API Transform3D di XAML consente di applicare trasformazioni prospettiche a un albero XAML (o scena), trasformando tutti gli elementi figlio XAML in base a quella singola trasformazione applicata a tutta la scena (o fotocamera). È possibile eseguire questa operazione in precedenza usando MatrixTransform e calcoli matematici complessi, ma Transform3D semplifica notevolmente questo effetto e consente anche di animare l'effetto. Per ulteriori informazioni, vedi la proprietà UIElement.Transform3D |
Mezzi di comunicazione
Caratteristica / Funzionalità | Descrizione |
---|---|
HTTP Live Streaming | È possibile usare la nuova classe AdaptiveMediaSource per aggiungere funzionalità di streaming video adattivo alle app. L'oggetto viene inizializzato puntandolo a un file manifesto di streaming. I formati di manifest supportati includono HTTP Live Streaming (HLS) e Dynamic Adaptive Streaming su HTTP (DASH). Una volta che l'oggetto è associato a un elemento multimediale XAML, inizia la riproduzione adattiva. Le proprietà del flusso, come i bitrate disponibili, minimi e massimi, possono essere consultate e impostate dove necessario. |
Supporto per il Media Foundation Transcode Video Processor (XVP) per le Media Foundation Transforms (MFTs) | Le app di Windows che usano le Trasformazioni di Media Foundation (MFT) possono ora usare la Media Foundation Transcode Video Processor (XVP) per convertire, ridimensionare e trasformare i dati grezzi video: il nuovo attributo MF_XVP_CALLER_ALLOCATES_OUTPUT consente l'output alle trame allocate dal chiamante anche in modalità di Accelerazione Video Microsoft DirectX (DXVA). La nuova interfaccia IMFVideoProcessorControl2 consente all'applicazione di abilitare gli effetti hardware, eseguire query sugli effetti hardware supportati ed eseguire l'override dell'operazione di rotazione eseguita dal processore video. |
Transcodifica | La nuova API MediaProcessingTrigger consente all'app di eseguire la transcodifica multimediale in un'attività in background, in modo che le operazioni di transcodifica possano continuare anche quando l'app in primo piano è stata terminata. |
Eventi di fallimento dei media in MediaElement | Nelle app di Windows universali, il MediaElement riproduce contenuto contenente più flussi anche se si verifica un errore durante la decodifica di uno dei flussi, purché il contenuto multimediale contenga almeno un flusso valido. Per esempio, se in un contenuto contenente un flusso audio e video il flusso video ha esito negativo, il MediaElement continuerà a riprodurre il flusso audio. Il PartialMediaFailureDetected ti avvisa che uno dei flussi appartenenti a un flusso non è stato possibile decodificare. Consente inoltre di conoscere il tipo di flusso non riuscito in modo che sia possibile riflettere tali informazioni nell'interfaccia utente. Se tutti i flussi all'interno di un flusso multimediale falliscono, viene generato l'evento MediaFailed. |
Supporto per lo streaming video adattivo con MediaElement | MediaElement ha il nuovo metodo SetPlaybackSource per supportare lo streaming video adattivo. Utilizzare questo metodo per impostare l'origine multimediale su AdaptiveMediaSource. |
Cast con MediaElement e Image | I controlli MediaElement e Image hanno il nuovo metodo GetAsCastingSource. È possibile usare questo metodo per inviare contenuto a livello di codice da qualsiasi elemento multimediale o immagine a un'ampia gamma di dispositivi remoti, ad esempio Miracast, Bluetooth e DLNA. Quando imposti AreTransportControlsEnabled su true in un elemento MediaElement, questa funzionalità viene abilitata automaticamente. |
Controlli di trasporto multimediale per le app desktop | L'interfaccia ISystemMediaTransportControls e le API correlate consentono alle app desktop di interagire con i controlli di trasporto multimediale di sistema predefiniti. Ciò include rispondere alle interazioni degli utenti con i pulsanti di controllo del trasporto e aggiornare i controlli di trasporto per visualizzare i metadati relativi ai contenuti multimediali attualmente in riproduzione. |
Codifica e decodifica JPEG ad accesso casuale | I nuovi metodi WIC IWICJpegFrameEncode e IWICJpegFrameDecode abilitare la codifica e la decodifica delle immagini JPEG. È ora anche possibile abilitare l'indicizzazione dei dati dell'immagine, che consente un accesso casuale efficiente alle immagini di grandi dimensioni a scapito di un footprint di memoria maggiore. |
Sovrimpressioni per le composizioni multimediali | Le nuove API MediaOverlay e MediaOverlayLayer semplificano l'aggiunta di più livelli di contenuto multimediale statico o dinamico a una composizione multimediale. L'opacità, la posizione e la tempistica possono essere regolate per ogni livello ed è anche possibile implementare il proprio compositore personalizzato per i livelli di input. |
Nuovo framework degli effetti | Lo spazio dei nomi Windows.Media.Effects fornisce un framework semplice e intuitivo per l'aggiunta di effetti ai flussi audio e video. Il framework include interfacce di base che è possibile implementare per creare effetti audio e video personalizzati e inserirli nella pipeline multimediale. |
Rete
Caratteristica / Funzionalità | Descrizione |
---|---|
Sockets | Gli aggiornamenti del socket includono: Gestore socket: Il gestore socket può stabilire e chiudere le connessioni socket per conto di un'app in qualsiasi stato del ciclo di vita dell'app. In questo modo, le app e i servizi che forniscono siano più facili da individuare. Ad esempio, tramite il gestore del socket, un servizio Win32 può comunque accettare connessioni socket in ingresso anche quando non è in esecuzione. miglioramenti della velocità effettiva: velocità effettiva socket è stata ottimizzata per le app che usano lo spazio dei nomi Windows.Networking.Sockets. |
Attività di post-elaborazione del trasferimento in background | Le nuove API nello spazio dei nomi Windows.Networking.BackgroundTransfer consentono di registrare gruppi di attività di post-elaborazione. L'app può quindi agire immediatamente sull'esito positivo o negativo dei trasferimenti in background, anche se non è in primo piano, invece di attendere la successiva ripresa dell'app. |
Supporto Bluetooth per annunci pubblicitari | Con lo spazio dei nomi Windows.Devices.Bluetooth.Advertisement, le tue app possono inviare, ricevere e filtrare gli annunci Bluetooth LE. |
aggiornamento dell'API diretta Wi-Fi | Il gestore di dispositivi viene aggiornato per abilitare l'associazione con i dispositivi senza uscire dall'app. Le aggiunte allo spazio dei nomi Windows.Devices.WiFiDirect Nota: In questa versione, i miglioramenti delle funzionalità Wi-Fi Direct non sono integrati nell'esperienza utente e supportano solo l'associazione di pulsanti. Questa versione supporta anche una sola connessione attiva. |
Miglioramenti del supporto JSON | Lo spazio dei nomi Windows.Data.Json supporta ora meglio le definizioni standard esistenti e l'esperienza di sviluppo durante la conversione di oggetti JSON durante le sessioni di debug. |
Sicurezza
Caratteristica / Funzionalità | Descrizione |
---|---|
Crittografia ECC | Le nuove API nello spazio dei nomi Windows.Security.Cryptography forniscono il supporto per la crittografia a curva ellittica (ECC), un'implementazione di crittografia a chiave pubblica basata su curve ellittiche su campi finiti. ECC è matematicamente più complesso di RSA, offre dimensioni chiave più piccole, riduce il consumo di memoria e migliora le prestazioni. Offre servizi e clienti Microsoft un'alternativa alle chiavi RSA e ai parametri di curva approvati da NIST. |
Microsoft Passport | Microsoft Passport è un metodo alternativo di autenticazione che sostituisce le password con la crittografia asimmetrica e un movimento. Le classi nello spazio dei nomi Credentials, ad esempio KeyCredentialManger, semplificano la creazione di applicazioni con Microsoft Passport senza la complessità della crittografia o della biometria. |
Microsoft Passport for Work | Microsoft Passport for Work è un metodo alternativo per l'accesso a Windows usando l'account Azure Active Directory che non usa password, smart card e smart card virtuali. È possibile scegliere se disabilitare o abilitare questa impostazione di criterio. |
Intermediario di Token | Token Broker è un nuovo framework di autenticazione che semplifica la connessione delle app ai provider di identità online (ad esempio Facebook). Funzionalità come la gestione di nome utente e password dell'account e un'interfaccia utente semplificata offrono un'esperienza di autenticazione notevolmente migliorata per gli utenti. |
Servizi di sistema
Caratteristica / Funzionalità | Descrizione |
---|---|
Potenza | L'applicazione desktop di Windows può ora ricevere una notifica quando il risparmio batteria viene attivato o disattivato. Rispondendo alle condizioni di alimentazione mutevoli, l'applicazione ha la possibilità di estendere la durata della batteria. GUID_POWER_SAVING_STATUS: Usa questo nuovo GUID con la funzione PowerSettingRegisterNotification per ricevere una notifica quando il risparmio energetico della batteria è attivato o disattivato. SYSTEM_POWER_STATUS: questa struttura è stata aggiornata per supportare il risparmio batteria. Il quarto membro SystemStatusFlag (precedentemente denominato Reserved1, ora indica se il risparmio energetico sia attivo o meno. Usare la funzione GetSystemPowerStatus per recuperare un puntatore a questa struttura. |
Versione | È possibile utilizzare le funzioni della Version Helper per determinare la versione del sistema operativo. Per Windows 10, queste funzioni di supporto includono una nuova funzione, IsWindows10OrGreater. È consigliabile usare le funzioni helper anziché quelle deprecate GetVersionEx e GetVersion quando si vuole determinare la versione di sistema. Per altre informazioni su come ottenere la versione di sistema, vedere Getting the System Version. Se utilizzi le funzioni deprecate GetVersionEx o GetVersion per ottenere informazioni sulla versione in una struttura OSVERSIONINFOEX o OSVERSIONINFO, tieni presente che il numero di versione contenuto in queste strutture aumenta da 6.3 per Windows 8.1 e Windows Server 2012 R2 a 10.0 per Windows 10. Per altre informazioni sui numeri di versione per il sistema operativo, vedere versione del sistema operativo. Devi anche avere come obiettivo specifico Windows 8.1 o Windows 10 nella tua applicazione per ottenere le corrette informazioni sulla versione per queste versioni, utilizzando la funzione GetVersionEx o la funzione GetVersion. Per informazioni su come impostare come destinazione l'applicazione per queste versioni di Windows, vedere Targeting your application for Windows. |
Informazioni sull'utente | Le nuove API nello spazio dei nomi Windows.System semplificano l'accesso alle informazioni su un utente, ad esempio il nome utente e l'immagine dell'account. Offre anche la possibilità di rispondere agli eventi degli utenti, come l'accesso e la disconnessione. |
Gestione e profilatura della memoria | Il supporto per l'API di profilatura della memoria in Windows.System è stato esteso a tutte le piattaforme e la relativa funzionalità complessiva è stata migliorata con nuove classi e funzioni. |
Immagazzinamento
Caratteristica / Funzionalità | Descrizione |
---|---|
API di ricerca di file disponibili per Windows Phone | Come publisher di app, puoi registrare la tua app per condividere una cartella di archiviazione con altre app che pubblichi aggiungendo estensioni al manifesto dell'app. Chiamare quindi il metodo Windows.Storage.ApplicationData.GetPublisherCacheFolder per ottenere il percorso di archiviazione condiviso. Il modello di sicurezza avanzata delle app di Windows Runtime impedisce in genere alle app di condividere i dati tra loro. Tuttavia, per le app dello stesso sviluppatore, può essere utile condividere file e impostazioni in base all'utente. |
Attrezzi
Caratteristica / Funzionalità | Descrizione |
---|---|
Albero visivo dinamico in Visual Studio | Visual Studio include una nuova funzionalità Struttura ad albero visuale attiva. Puoi usarlo durante il debug per comprendere rapidamente lo stato della struttura ad albero visuale dell'app e scoprire come sono state impostate le proprietà degli elementi. Consente anche di modificare i valori delle proprietà durante l'esecuzione dell'app, in modo da poter modificare ed sperimentare senza dover eseguire di nuovo l'avvio. |
Registrazione della traccia | traceLogging è una nuova API di traccia eventi per app in modalità utente e driver in modalità kernel; si basa su Event Tracing for Windows (ETW). Questa API offre un modo semplificato per instrumentare il codice e includere dati strutturati con eventi senza richiedere un file XML manifesto di strumentazione separato. Le API TraceLogging WinRT, .NET e C/C++ sono disponibili per soddisfare le esigenze di diversi gruppi di sviluppatori. |
Esperienza utente
Caratteristica / Funzionalità | Descrizione |
---|---|
Riconoscimento vocale | Il riconoscimento vocale continuo per scenari di dettatura in formato lungo è ora supportato dalla piattaforma UWP (Universal Windows Platform). Vedere come abilitare la dettatura continua nella documentazione sull'interazione vocale. |
Funzionalità di trascina e rilascia tra diverse piattaforme applicative | La nuova Windows.ApplicationModel.DataTransfer.DragDrop spazio dei nomi porta la funzionalità di trascina e rilascia nelle app universali di Windows. In passato, gli scenari comuni di trascinamento della selezione per i programmi desktop, come ad esempio trascinare un documento da una cartella in un messaggio di posta elettronica di Outlook per allegarlo, non erano possibili con le app di Windows Universal. Usando queste nuove API, l'app può consentire agli utenti di spostare facilmente i dati tra diverse app di Windows universali e il desktop. Per supportare il trascina e rilascia tra app, queste nuove API sono state aggiunte a XAML: ListViewBase.DragItemsCompleted; UIElement: CanDrag, DragStarting, StartDragAsync, DropCompleted; DragOperationDeferral, DragUI, DragUIOverride; DragEventArgs: AcceptedOperation, DataView, DragUIOverride, GetDeferral, Modificatori; DragItemsCompletedEventArgs, DropCompletedEventArgs, DragStartingEventArgs |
Barre del titolo della finestra personalizzate | Per le app UWP per la famiglia di dispositivi desktop, puoi ora usare la classe ApplicationViewTitleBar con la proprietà ApplicationView.TitleBar e il metodo Window.SetTitleBar per sostituire il contenuto predefinito della barra del titolo di Windows con il tuo contenuto XAML personalizzato. Il codice XAML viene considerato come "chrome di sistema", quindi Windows gestirà gli eventi di input anziché l'app. Ciò significa che l'utente può ancora trascinare e ridimensionare la finestra, anche quando si fa clic sul contenuto della barra del titolo personalizzato. |
Rete Internet
Caratteristica / Funzionalità | Descrizione |
---|---|
Microsoft Edge | Microsoft Edge è il nuovo browser predefinito creato per Windows 10. Per altre informazioni e una panoramica delle funzionalità e degli standard per sviluppatori inclusi in Microsoft Edge, incluse le funzionalità JavaScript più recenti, vedere La Guida per sviluppatori di Microsoft Edge. |
Navigazione in WebView | Il controllo WebView usa lo stesso motore di rendering del nuovo browser Microsoft Edge. In questo modo viene fornita la modalità di rendering HTML più accurata e conforme agli standard. |
WebView eseguita fuori dal thread | È possibile specificare un WebView.ExecutionMode per abilitare l'elaborazione e la visualizzazione del contenuto Web in un thread in background separato. Ciò può migliorare le prestazioni in determinati scenari specifici. |
Evento WebView.UnsupportedUriSchemeIdentified | Il nuovo evento WebView.UnsupportedUriSchemeIdentified consente di decidere come la tua app dovrebbe gestire uno schema URI non supportato. Puoi gestire questo evento per consentire alla tua app di fornire una gestione personalizzata di schemi URI non supportati. Per il controllo WebView HTML, vedere l'evento MSWebViewUnsupportedUriSchemeIdentified. |
Evento WebView.NewWindowRequested | Il nuovo evento WebView.NewWindowRequested consente di rispondere quando uno script in un controllo WebView richiede una nuova finestra del browser. Per il controllo WebView HTML, consultare l'evento "MSWebViewNewWindowRequested". |
Evento WebView.PermissionRequested | Il nuovo evento WebView.PermissionRequested consente al contenuto webView di sfruttare nuove API HTML5 avanzate che richiedono autorizzazioni speciali all'utente, ad esempio la georilevazione. Per il controllo HTML WebView, fare riferimento all'evento MSWebViewPermissionRequested. |
Evento WebView.UnviewableContentIdentified | Il nuovo evento WebView.UnviewableContentIdentified consente di rispondere quando WebView viene spostato su contenuto non Web, ad esempio un file PDF o un documento di Office. Per i controlli WebView HTML, vedere l'evento MSWebViewUnviewableContentIdentified. |
Il metodo WebView.AddWebAllowedObject | Puoi chiamare il nuovo metodo WebView.AddWebAllowedObject per inserire un oggetto WinRT in un controllo WebView XAML e quindi chiamarne le funzioni da JavaScript attendibile ospitato in tale WebView. Ad esempio, il contenuto Web può visualizzare le notifiche di sistema richiedendo che l'app padre chiami il ToastNotificationManager API WinRT. Per il controllo WebView HTML, vedere il metodo addWebAllowedObject. |
Metodo WebView.ClearTemporaryWebDataAsync | Quando un utente interagisce con il contenuto Web all'interno di un controllo WebView XAML, il controllo WebView memorizza nella cache i dati in base alla sessione dell'utente. È possibile chiamare il nuovo metodo ClearTemporaryWebDataAsync per cancellare questa cache. Ad esempio, è possibile cancellare la cache quando un utente si disconnette dall'app in modo che un altro utente non possa accedere ai dati della sessione precedente. |