Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O cartão de contacto apresenta informações de contacto, como nome, número de telefone e morada, para um Contacto (o mecanismo utilizado pelo Windows para representar pessoas e empresas). O cartão de contacto também permite ao utilizador editar as informações de contacto. Pode optar por exibir um cartão de contacto compacto ou um cartão de contacto completo que contenha informações adicionais.
APIs importantes: método ShowContactCard, método ShowFullContactCard, método IsShowContactCardSupported, classe Contact
Existem duas formas de mostrar o cartão de contacto:
- Como um cartão de contacto padrão que aparece num flyout que pode ser descartado clicando fora dele. O cartão de contacto desaparece quando o utilizador clica fora da área do flyout.
- Como um cartão de contacto completo que ocupa mais espaço e não pode ser fechado automaticamente — o utilizador deve clicar em fechar para o fechar.
Será este o controlo correto?
Use o cartão de contacto quando quiser mostrar os dados de contacto de um contacto. Se quiser apenas mostrar o nome e a foto do contacto, use o controlo de imagem da pessoa.
Mostrar um cartão de contacto padrão
Normalmente, mostra um cartão de contacto porque o utilizador clicou em algo: um botão ou talvez o controlo de imagem da pessoa. Não queremos esconder o elemento. Para evitar escondê-lo, precisamos de criar um Rect que descreva a localização e o tamanho do elemento.
Vamos criar uma função utilitária que faça isso por nós — usaremos 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; }Determine se pode mostrar o cartão de contacto chamando o método ContactManager.IsShowContactCardSupported. Se não for suportado, mostre uma mensagem de erro. (Este exemplo assume que vai mostrar o cartão de contacto 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 utilitária que criou no passo 1 para obter os limites do controlo que disparou o evento (para não o cobrirmos com o cartão de contacto).
Rect selectionRect = GetElementRect((FrameworkElement)sender);Obtenha o objeto de contacto que quer mostrar. Este exemplo cria apenas um contacto simples, mas o teu código deve recuperar um contacto 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 contacto ligando pelo método ShowContactCard .
ContactManager.ShowFullContactCard( contact, selectionRect, Placement.Default); } }
Aqui está o exemplo completo do código:
// 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 contacto completo
Para mostrar o cartão de contacto completo, ligue pelo método ShowFullContactCard em vez do 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);
}
Recuperação de contactos "reais"
Os exemplos deste artigo criam um contacto simples. Numa aplicação real, provavelmente vais querer recuperar um contacto existente. Para instruções, consulte o artigo Contactos e calendário.
Artigos relacionados
Windows developer