Scheda contattoContact card

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).The contact card displays contact information, such as the name, phone number, and address, for a Contact (the mechanism Windows uses to represent people and businesses). La scheda contatto consente all'utente anche di modificare le informazioni di contatto.The contact card also lets the user edit contact info. Puoi scegliere di visualizzare una scheda contatto compatta o completa, che contiene informazioni aggiuntive.You can choose to display a compact contact card, or a full contact card that contains additional information.

API importanti: Metodo ShowContactCard, Metodo ShowFullContactCard, Metodo IsShowContactCardSupported, Classe ContactImportant APIs: ShowContactCard method, ShowFullContactCard method, IsShowContactCardSupported method, Contact class

Esistono due modi per visualizzare la scheda contatto:There are two ways to display the contact card:

  • 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.As a standard contact card that appears in a flyout that is light-dismissable--the contact card dissapears when the user clicks outside of it.
  • 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.As a full contact card that takes up more space and is not light-dismissable--the user must click close to close it.
Screenshot showing a standard contact card.
Scheda contatto standardThe standard contact card
Screenshot showing a full contact card.
Scheda contatto completaThe full contact card

È il controllo giusto?Is this the right control?

Quando vuoi visualizzare le informazioni di un contatto, usa la scheda contatto.Use the contact card when you want to display contact info for a contact. Per visualizzare solo il nome e l'immagine del contatto, usa il controllo immagine di persona.If you only want to display the contact's name and picture, use the person picture control.

Visualizzare una scheda contatto standardShow a standard contact card

  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.Typically, you show a contact card because the user clicked something: a button or perhaps the person picture control. Se non vogliamo nascondere l'elemento,We don't want to hide the element. dobbiamo creare un elemento Rect che descrive il percorso e le dimensioni dell'elemento.To avoid hiding it, we need to create a Rect that describes the location and size of the element.

    Creiamo una funzione di utilità che esegua questa operazione automaticamente e che useremo in seguito.Let's create a utility function that does that for us--we'll use it later.

    // 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.Determine whether you can display the contact card by calling the ContactManager.IsShowContactCardSupported method. Se non è supportato, viene visualizzato un messaggio di errore.If it's not supported, display an error message. In questo esempio si presuppone che la scheda contatto venga visualizzata in risposta a un evento Click.(This example assumes that you'll be showing the contact card in response to a click event .)

    // 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).Use the utility function you created in step 1 to get the bounds of the control that fired the event (so we don't cover it up with the contact card).

            Rect selectionRect = GetElementRect((FrameworkElement)sender); 
    
  4. Ottieni l'oggetto Contact da visualizzare.Get the Contact object you want to display. Questo esempio crea un contatto semplice, ma il tuo codice dovrebbe recuperare un contatto effettivo.This example just creates a simple contact, but your code should retrieve an actual contact.

                // 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.Show the contact card by calling the ShowContactCard method.

            ContactManager.ShowFullContactCard(
                contact, selectionRect, Placement.Default); 
        } 
    } 
    

Ecco l'esempio di codice completo:Here's the complete code example:

// 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 completaShow a full contact card

Per visualizzare la scheda contatto completa, chiama il metodo ShowFullContactCard invece di ShowContactCard.To show the full contact card, call the ShowFullContactCard method instead of 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"Retrieving "real" contacts

Gli esempi in questo articolo creano un contatto semplice.The examples in this article create a simple contact. In un'app reale probabilmente vorrai recuperare un contatto esistente.In a real app, you'd probably want to retrieve an existing contact. Per istruzioni, vedi l'articolo Contatti, I miei contatti e Calendario.For instructions, see the Contacts and calendar article.