Grazie all'arrivo di Windows 10, sono disponibili nello store decine di applicazioni che fanno uso di chiamate audio, video, VOIP e così via. Tutte queste app hanno in comune l'utilizzo di una sola cosa: i contatti.
A nostro supporto, ci viene fornita dal framework la classe Contact, che ci permette di creare un nuovo contatto e di salvarlo, oppure di mostrarlo sotto la classica forma di bigliettino da visita.
Possiamo quindi creare il nostro contatto con queste poche righe di codice e secondo le nostre esigenze:
Contact contact = new Contact();
// aggiungo le informazioni base
contact.Name = "Matteo";
contact.LastName = "Tumiati";
// aggiungo informazioni di lavoro
ContactJobInfo info = new ContactJobInfo { CompanyName = "iCubed srl", Department = "IT", Title = "Senior Consultant" };
contact.JobInfo.Add(info);
// aggiungo una mail
ContactEmail email = new ContactEmail { Address = "a@b.com", Kind = ContactEmailKind.Work };
contact.Emails.Add(email);
// aggiungo il telefono di lavoro e personale
ContactPhone workPhone = new ContactPhone { Number = "123456789", Kind = ContactPhoneKind.Work };
ContactPhone privatePhone = new ContactPhone { Number = "987654321", Kind = ContactPhoneKind.Home };
contact.Phones.Add(workPhone);
contact.Phones.Add(privatePhone);
// aggiungo due siti web
ContactWebsite website1 = new ContactWebsite { Uri = new Uri("http://aspitalia.com"), Description = "ASPItalia.com" };
ContactWebsite website2 = new ContactWebsite { Uri = new Uri("http://icubed.it"), Description = "iCubed srl" };
contact.Websites.Add(website1);
contact.Websites.Add(website2);
A questo punto non ci resta altro che scegliere il punto in cui mostrare il bigliettino da visita:
public static Rect GetElementRect(FrameworkElement element)
{
GeneralTransform buttonTransform = element.TransformToVisual(null);
Point point = buttonTransform.TransformPoint(new Point());
return new Rect(point, new Size(element.ActualWidth, element.ActualHeight));
}
E quindi mostrarlo, in un formato più orientato all'ambito enterprise:
// aggiungiamo un paio di opzioni per renderlo più orientato al lavoro
ContactCardOptions options = new ContactCardOptions() { HeaderKind = ContactCardHeaderKind.Enterprise, InitialTabKind = ContactCardTabKind.Email };
// mostriamo la card
ContactManager.ShowContactCard(contact, rect, Windows.UI.Popups.Placement.Above, options);
Il risultato che otteniamo è qualcosa di simile al seguente:

Tutte le mail inserite sono cliccabili e il contenuto verrà aperto grazie all'applicazione Mail preinstallata, oppure con una applicazione di terze parti, tipo Outlook. I numeri di telefono invece, verranno aperti da tutte le applicazioni che supportano il protocollo ms-voip-pstn.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare Intersect e Except per filtrare set di dati in TSql
Gestione CSS in Blazor con .NET 9
Documentare i servizi REST con Swagger e OpenAPI con .NET 9
Eliminare record doppi in Sql Server
Utilizzare una qualunque lista per i parametri di tipo params in C#
Montare Azure Blob Storage su Linux con BlobFuse2
Utilizzare l nesting nativo dei CSS
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Eliminare una project wiki di Azure DevOps
Configurare lo startup di applicazioni server e client con .NET Aspire
Potenziare la ricerca su Cosmos DB con Full Text Search
Integrazione di Copilot in .NET Aspire


