Cartão de visita

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). O cartão de visita também permite que o usuário edite informações de contato. Você pode optar por exibir um cartão de visita compacto ou completo que contém informações adicionais.

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

Há duas maneiras de exibir o cartão de visita:

  • 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.
  • 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.
Captura de tela mostrando um cartão de contato padrão.
O cartão de visita padrão
Captura de tela mostrando um contato completo cartão.
O cartão de visita completo

Esse é o controle correto?

Use o cartão de visita quando quiser exibir informações de contato para um contato. Se você quiser exibir somente o nome e a imagem do contato, use o controle de imagem da pessoa.

Exibir um cartão de visita padrão

  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. Não queremos ocultar o elemento. Para evitar isso, precisamos criar um Rect que descreve a localização e o tamanho do elemento.

    Vamos criar uma função de utilitário que faz isso para nós – vamos usá-la posteriormente.

    // 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. Se não for compatível, exiba uma mensagem de erro. Este exemplo pressupõe que você mostrará o cartão de visita em resposta a um evento de clique.

    // 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).

            Rect selectionRect = GetElementRect((FrameworkElement)sender); 
    
  4. Obtenha o objeto Contato que você deseja exibir. Este exemplo apenas cria um contato simples, mas o código precisa recuperar um contato real.

                // 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 contato chamando o método ShowContactCard.

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

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

Exibir um cartão de visita completo

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

Recuperar contatos "reais"

Os exemplos neste artigo criam um contato simples. Em um aplicativo real, você provavelmente deseja recuperar um contato existente. Para obter instruções, confira o artigo Contatos e calendário.