Compartilhar via


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 um cartão de visita completo que contenha 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 contato padrão que aparece em uma janela pop-up que é facilmente descartável, o cartão de contato desaparece quando o usuário clica fora dele.
  • Como um cartão de contato completo que ocupa mais espaço e não pode ser dispensado com um clique fora, o usuário deve clicar fechar para fechá-lo.
Captura de tela mostrando um cartão de visita padrão.
O cartão de contato padrão
Captura de tela mostrando um cartão de visita completo.
O cartão de contato 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 apenas o nome e a imagem do contato, use o controle de imagem da pessoa.

Mostrar um cartão de contato padrão

  1. Normalmente, você mostra um cartão de contato porque o usuário clicou em algo: um botão ou talvez o controle de imagem de perfil. Não queremos ocultar o elemento. Para evitar escondê-lo, precisamos criar um Rect que descreva o local e o tamanho do elemento.

    Vamos criar uma função de utilitário que faça isso para nós– vamos usá-la mais tarde.

    // 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 houver suporte, exiba uma mensagem de erro. (Este exemplo pressupõe que você mostrará o cartão de contato 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 utilitária que você criou na etapa 1 para obter os limites do controle que acionou o evento (para que não o cubramos com o cartão de visita).

            Rect selectionRect = GetElementRect((FrameworkElement)sender); 
    
  4. Obtenha o objeto Contact que você deseja exibir. Este exemplo apenas cria um contato simples, mas seu código deve 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 visita 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); 
    } 
} 

Mostrar um cartão de contato 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); 
} 

Recuperando contatos "reais"

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