Come abbiamo già introdotto nello script 13, l'integrazione con il sistema operativo è uno dei punti di forza delle Windows Store app, alcune di esse rientrano proprio come requisiti da rispettare per la pubblicazione nello store.
Una di queste è l'utilizzo della charm di ricerca per effettuare ricerche all'interno delle applicazioni.
In WinRT questa funzionalità si esegue attraverso i contracts, nello specifico attraverso il search contract.
La prima operazione è editare il manifest dell'applicazione e dichiarare che la nostra applicazione può annoverare tra quelle suscettibili di ricerca, con Visual Studio questa operazione può essere fatta con il relativo editor visuale aggiungendo search tra le Declarations, come da immagine seguente:

Con questa semplice impostazione otteniamo che la nostra app "App1" sia presente nell'elenco della charm di ricerca.

Per intercettare il click sulla lente della casella di ricerca è possibile fare l'override del metodo OnSearchActivated esposto dalla classe App.
protected override void OnSearchActivated(SearchActivatedEventArgs args) { base.OnSearchActivated(args); var frame = Window.Current.Content as Frame; if (frame != null) frame.Navigate(typeof(SearchSamplePage), args.QueryText); }
Nel metodo recuperiamo il testo immesso dall'utente attraverso il parametro SearchActivatedEventArgs e la sua proprietà QueryText, che viene passato tra i parametri di navigazione alla view incaricata di mostrare i risultati, nell'esempio SearchSamplePage.
Tale view è responsabile di eseguire l'accesso ai dati e mostrare i risultati della ricerca.
In realtà il metodo OnSearchActivated si scatena anche quando l'applicazione viene attivata direttamente dalla charm, nel momento in cui l'utente seleziona l'applicazione nella lista, prima di immettere il testo e premere il pulsante di ricerca con la lente. Quindi, in tale metodo, possiamo adottare le dovute logiche per ridurre i tempi di startup ed evitare la navigazione se siamo già nella view di ricerca.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Le novità di .NET 7 e C# 11
Modernizzare le applicazioni WPF e Windows Forms con Blazor
Permettere l'append ai file di un Azure Storage immutabile
Migrare un repository git da Azure DevOps a GitHub
Abilitare HTTP/3 in ASP.NET Core 7.0
Dependency Injection e custom validator in Blazor con .NET 7.0
Gestione degli environment per il deploy con un workflow di GitHub
Organizzare i moduli sfruttando CommonJS
Ottenere il riferimento alla finestra che ha aperto un'altra finestra con HTML5 e JavaScript
Le novità di Entity Framework (Core) 7
Impostare il tema light o dark utilizzando i CSS
Utilizzare i nuovi piani dedicati di Azure Container Apps
I più letti di oggi
- .NET Conference Italia 2022 - Milano e Online
- Visual Studio 2019 sarà disponibile a partire dal 2 Aprile
- Windows Phone 8.1 Day - Milano
- Speciale per il lancio di Visual Studio 2008, SQL Server 2008 e Windows Server 2008 dal 25/02 al 07/03
- ASP.NET 3.5 Extensions in beta la settimana prossima
- ASPItalia.com Future Web Conference: 15 gennaio 2008, L'Aquila
- Rilasciata la CTP Preview di ASP.NET 3.5 Extensions
- Tutto per portare Visual Studio 2015, ASP.NET 5 e Windows 10 sotto l'ombrellone!
- Real Code Day 4.0: costruire applicazioni reali - Firenze
- Tutto per portarsi il .NET Framework 3.5 sotto l'ombrellone