Cartão do contato
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 que aparece em um submenu que pode ser dispensado à luz, 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.
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
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; }
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()) {
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);
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);
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);
}
}
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.
Artigos relacionados
Windows developer