Fiche contact

La carte de visite affiche des coordonnées, telles que le nom, le numéro de téléphone et l’adresse, pour un Contact (mécanisme utilisé par Windows pour représenter les personnes et les entreprises). La carte de visite permet également à l’utilisateur de modifier des coordonnées. Vous pouvez choisir d’afficher une carte de visite compacte ou une carte de visite complète contenant des informations supplémentaires.

API importantes : méthode ShowContactCard, méthode ShowFullContactCard, méthode IsShowContactCardSupported, classe Contact

Vous pouvez afficher la carte de visite de deux façons :

  • En tant que carte de visite standard qui apparaît dans un menu volant qui est légèrement ignorée, la carte de visite disparaît lorsque l’utilisateur clique en dehors de celui-ci.
  • Sous forme de carte de visite complète occupant davantage d’espace et à fermeture classique : l’utilisateur doit cliquer sur fermer pour la faire disparaître.
Capture d’écran montrant une carte de visite standard.
Carte de visite standard
Capture d’écran montrant une carte de visite complète.
Carte de visite complète

Est-ce le contrôle approprié ?

Utilisez la carte de visite si vous souhaitez afficher les coordonnées d’un contact. Si vous souhaitez uniquement afficher le nom du contact et son image, utilisez le contrôle de photo de la personne.

Afficher une carte de visite standard

  1. En règle générale, vous affichez une carte de visite parce que l’utilisateur a cliqué sur un élément : un bouton ou peut-être le contrôle de photo de la personne. Nous ne voulons pas que l’élément soit masqué. Pour éviter qu’il soit masqué, nous devons créer un objet Rect qui décrit l’emplacement et la taille de l’élément.

    Nous allons créer une fonction utilitaire qui va s’en charger : nous l’utiliserons ultérieurement.

    // 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. Déterminez si vous pouvez afficher la carte de visite en appelant la méthode ContactManager.IsShowContactCardSupported. Si elle n’est pas prise en charge, affichez un message d’erreur (cet exemple suppose que vous affichez la carte de visite en réponse à un événement Click).

    // Contact and Contact Managers are existing classes 
    private void OnUserClickShowContactCard(object sender, RoutedEventArgs e) 
    { 
        if (ContactManager.IsShowContactCardSupported()) 
        { 
    
    
  3. Utilisez la fonction utilitaire que vous avez créée à l’étape 1 pour obtenir les limites du contrôle qui a déclenché l’événement (de sorte que la carte de visite ne le recouvre pas).

            Rect selectionRect = GetElementRect((FrameworkElement)sender); 
    
  4. Obtenez l’objet Contact que vous voulez afficher. Cet exemple se contente de créer un contact simple, mais votre code doit récupérer un contact existant.

                // Retrieve the contact to display
                var contact = new Contact(); 
                var email = new ContactEmail(); 
                email.Address = "jsmith@contoso.com"; 
                contact.Emails.Add(email); 
    
  5. Affichez la carte de visite en appelant la méthode ShowContactCard.

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

Voici l’exemple de code complet :

// 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); 
    } 
} 

Afficher une carte de visite complète

Pour afficher la carte de visite complète, appelez la méthode ShowFullContactCard au lieu de 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); 
} 

Récupération de contacts existants

Les exemples de cet article créent un contact simple. Dans une application réelle, vous devrez probablement récupérer un contact existant. Pour obtenir des instructions, consultez l’article Contacts et calendriers.