Cartão de visitaContact card

O cartão de visita exibe informações de contato, como nome, número de telefone e endereço, para um Contato (o mecanismo que o Windows usa para representar pessoas e empresas).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). O cartão de visita também permite que o usuário edite informações de contato.The contact card also lets the user edit contact info. Você pode optar por exibir um cartão de visita compacto ou completo que contém informações adicionais.You can choose to display a compact contact card, or a full contact card that contains additional information.

APIs importantes: método ShowContactCard, método ShowFullContactCard, método IsShowContactCardSupported, classe ContactImportant APIs: ShowContactCard method, ShowFullContactCard method, IsShowContactCardSupported method, Contact class

Há duas maneiras de exibir o cartão de visita:There are two ways to display the contact card:

  • Como um cartão de visita padrão exibido em um submenu light dismiss – o cartão de visita desaparece quando o usuário clica fora dele.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.
  • Como um cartão de visita completo que ocupa mais espaço e não é light dismiss – o usuário deve clicar em Fechar para fechá-lo.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.
O cartão de visita padrãoThe standard contact card
Screenshot showing a full contact card.
O cartão de visita completoThe full contact card

Esse é o controle correto?Is this the right control?

Use o cartão de visita quando quiser exibir informações de contato para um contato.Use the contact card when you want to display contact info for a contact. Se você quiser exibir somente o nome e a imagem do contato, use o controle de imagem da pessoa.If you only want to display the contact's name and picture, use the person picture control.

Exibir um cartão de visita padrãoShow a standard contact card

  1. Normalmente, você mostra um cartão de visita porque o usuário clicou em algo: um botão ou talvez o controle de imagem da pessoa.Typically, you show a contact card because the user clicked something: a button or perhaps the person picture control. Não queremos ocultar o elemento.We don't want to hide the element. Para evitar isso, precisamos criar um Rect que descreve a localização e o tamanho do elemento.To avoid hiding it, we need to create a Rect that describes the location and size of the element.

    Vamos criar uma função de utilitário que faz isso para nós – vamos usá-la posteriormente.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. Determine se você pode exibir o cartão de visita chamando o método ContactManager.IsShowContactCardSupported.Determine whether you can display the contact card by calling the ContactManager.IsShowContactCardSupported method. Se não for compatível, exiba uma mensagem de erro.If it's not supported, display an error message. Este exemplo pressupõe que você mostrará o cartão de visita em resposta a um evento de clique.(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. Use a função de utilitário criada na etapa 1 para obter os limites do controle que disparou o evento (para que não seja coberto pelo cartão de visita).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. Obtenha o objeto Contato que você deseja exibir.Get the Contact object you want to display. Este exemplo apenas cria um contato simples, mas o código precisa recuperar um contato real.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. Mostre o cartão de visita chamando o método ShowContactCard.Show the contact card by calling the ShowContactCard method.

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

Este é o exemplo de código 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); 
    } 
} 

Exibir um cartão de visita completoShow a full contact card

Para mostrar o cartão de visita completo, chame o método ShowFullContactCard em vez de 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); 
} 

Recuperar contatos "reais"Retrieving "real" contacts

Os exemplos neste artigo criam um contato simples.The examples in this article create a simple contact. Em um aplicativo real, você provavelmente deseja recuperar um contato existente.In a real app, you'd probably want to retrieve an existing contact. Para obter instruções, confira o artigo Contatos e calendário.For instructions, see the Contacts and calendar article.