Scheda Contatto
La scheda contatto visualizza le informazioni di contatto, ad esempio il nome, il numero di telefono e l'indirizzo, di un contatto (il meccanismo usato da Windows per rappresentare persone e aziende). La scheda contatto consente all'utente anche di modificare le informazioni di contatto. Puoi scegliere di visualizzare una scheda contatto compatta o completa, che contiene informazioni aggiuntive.
API importanti: Metodo ShowContactCard, Metodo ShowFullContactCard, Metodo IsShowContactCardSupported, Contact class
Esistono due modi per visualizzare la scheda contatto:
- Come scheda contatto standard visualizzata in un riquadro a comparsa che è visibile alla luce, la scheda contatto scompare quando l'utente fa clic al di fuori di esso.
- Come scheda contatto completa, che occupa più spazio e non scompare quando si tocca lo schermo. In questo caso, l'utente deve fare clic su Chiudi per chiuderla.
È il controllo giusto?
Quando vuoi visualizzare le informazioni di un contatto, usa la scheda contatto. Per visualizzare solo il nome e l'immagine del contatto, usa il controllo immagine di persona.
Visualizzare una scheda contatto standard
Una scheda contatto viene visualizzata, in genere, perché l'utente fa clic su un elemento: un pulsante o magari il controllo immagine di persona. Se non vogliamo nascondere l'elemento, dobbiamo creare un elemento Rect che descrive il percorso e le dimensioni dell'elemento.
Creiamo una funzione di utilità che esegua questa operazione automaticamente e che useremo in seguito.
// Gets the rectangle of the element public static Rect GetElementRectHelper(FrameworkElement element) { // Passing "null" means set to root element. GeneralTransform elementTransform = element.TransformToVisual(null); Rect rect = elementTransform.TransformBounds(new Rect(0, 0, element.ActualWidth, element.ActualHeight)); return rect; }
Verifica se puoi visualizzare la scheda contatto chiamando il metodo ContactManager.IsShowContactCardSupported. Se non è supportato, viene visualizzato un messaggio di errore. In questo esempio si presuppone che la scheda contatto venga visualizzata in risposta a un evento Click.
// Contact and Contact Managers are existing classes private void OnUserClickShowContactCard(object sender, RoutedEventArgs e) { if (ContactManager.IsShowContactCardSupported()) {
Usa la funzione di utilità creata nel passaggio 1 per ottenere i limiti del controllo che ha generato l'evento (in modo che non venga coperto dalla scheda contatto).
Rect selectionRect = GetElementRect((FrameworkElement)sender);
Ottieni l'oggetto Contact da visualizzare. Questo esempio crea un contatto semplice, ma il tuo codice dovrebbe recuperare un contatto effettivo.
// Retrieve the contact to display var contact = new Contact(); var email = new ContactEmail(); email.Address = "jsmith@contoso.com"; contact.Emails.Add(email);
Visualizza la scheda contatto chiamando il metodo ShowContactCard.
ContactManager.ShowFullContactCard( contact, selectionRect, Placement.Default); } }
Ecco l'esempio di codice completo:
// Gets the rectangle of the element
public static Rect GetElementRect(FrameworkElement element)
{
// Passing "null" means set to root element.
GeneralTransform elementTransform = element.TransformToVisual(null);
Rect rect = elementTransform.TransformBounds(new Rect(0, 0, element.ActualWidth, element.ActualHeight));
return rect;
}
// Display a contact in response to an event
private void OnUserClickShowContactCard(object sender, RoutedEventArgs e)
{
if (ContactManager.IsShowContactCardSupported())
{
Rect selectionRect = GetElementRect((FrameworkElement)sender);
// Retrieve the contact to display
var contact = new Contact();
var email = new ContactEmail();
email.Address = "jsmith@contoso.com";
contact.Emails.Add(email);
ContactManager.ShowContactCard(
contact, selectionRect, Placement.Default);
}
}
Visualizzare una scheda contatto completa
Per visualizzare la scheda contatto completa, chiama il metodo ShowFullContactCard invece di ShowContactCard.
private void onUserClickShowContactCard()
{
Contact contact = new Contact();
ContactEmail email = new ContactEmail();
email.Address = "jsmith@hotmail.com";
contact.Emails.Add(email);
// Setting up contact options.
FullContactCardOptions fullContactCardOptions = new FullContactCardOptions();
// Display full contact card on mouse click.
// Launch the People’s App with full contact card
fullContactCardOptions.DesiredRemainingView = ViewSizePreference.UseLess;
// Shows the full contact card by launching the People App.
ContactManager.ShowFullContactCard(contact, fullContactCardOptions);
}
Recupero dei contatti "reali"
Gli esempi in questo articolo creano un contatto semplice. In un'app reale probabilmente vorrai recuperare un contatto esistente. Per istruzioni, vedi l'articolo Contatti, I miei contatti e Calendario.