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.
Screenshot che mostra una scheda contatto standard.
Scheda contatto standard
Screenshot che mostra una scheda contatto completa.
Scheda contatto completa

È 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

  1. 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; 
    } 
    
    
  2. 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()) 
        { 
    
    
  3. 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); 
    
  4. 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); 
    
  5. 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.