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
Criptare la comunicazione con mTLS in Azure Container Apps
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Usare le collection expression per inizializzare una lista di oggetti in C#
Creare gruppi di client per Event Grid MQTT
Usare un KeyedService di default in ASP.NET Core 8
Potenziare Azure AI Search con la ricerca vettoriale
Specificare il versioning nel path degli URL in ASP.NET Web API
Utilizzare gli snapshot con Azure File shares
Utilizzare un service principal per accedere a Azure Container Registry
Disabilitare automaticamente un workflow di GitHub
Implementare l'infinite scroll con QuickGrid in Blazor Server
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
I più letti di oggi
- Utilizzare Docker Compose con Azure App Service
- Utilizzare QuickGrid di Blazor con Entity Framework
- Modernizzare le applicazioni WPF e Windows Forms con Blazor
- ASP 3 per esempi
- annunciato #netstandard 2.1. .NET Core lo supporterà a partire da #netcore3, così come le prossime versione di #xamarin, #mono e #unity.il supporto per #netfx 4.8, invece, non ci sarà. https://aspit.co/bq2
- Steel Style CheckBox per Silverlight 4.0