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, che viene visualizzata in un riquadro a comparsa che scompare quando si tocca lo schermo. In questo caso, la scheda contatto scompare quando l'utente fa clic fuori dalla scheda.
  • 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 showing a standard contact card.
Scheda contatto standard
Screenshot showing a full contact card.
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.