Карточка контакта
Карта контакта отображает контактные данные, такие как имя, номер телефона и адрес контакта (механизм, который платформа Windows использует для представления пользователей и компаний). Карточка контакта также позволяет пользователю редактировать контактные данные. Можно выбрать, какую карточку следует отобразить: компактную карточку контакта или полную карточку контакта, которая содержит дополнительные сведения.
Важные API: метод ShowContactCard, метод ShowFullContactCard, метод IsShowContactCardSupported, класс Contact
Существуют два способа отображения карточки контакта:
- Как стандартная карточка контакта, которая отображается во всплывающем элементе, который является легким увольнением, карточка контакта исчезает, когда пользователь щелкает за ее пределами.
- В качестве полной карточки контакта, которая занимает больше пространства и не исчезает, то есть пользователь должен нажать кнопку Закрыть, чтобы она закрылась.
Выбор правильного элемента управления
Используйте карточку контакта, если требуется отобразить контактные данные для контакта. Если вам необходимо отобразить только имя контакта и изображение, используйте элемент управления аватаром пользователя.
Отображение стандартной карточки контакта
Как правило, карточка контакта отображается, когда пользователь щелкает какой-то элемент: кнопку или, возможно, элемент управления аватаром пользователя. Нам не нужно скрывать этот элемент. Чтобы он не скрывался, необходимо создать Rect, описывающий расположение и размер элемента.
Давайте создадим служебную функцию для этого. Мы используем ее позже.
// 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; }
Определите, отображается ли карточка контакта путем вызова метода ContactManager.IsShowContactCardSupported. Если этот способ не поддерживается, отобразите сообщение об ошибке. (В этом примере предполагается, что карточка контакта будет отображаться в ответ на событие щелчка.)
// Contact and Contact Managers are existing classes private void OnUserClickShowContactCard(object sender, RoutedEventArgs e) { if (ContactManager.IsShowContactCardSupported()) {
Используйте служебную функцию, которую вы создали на шаге 1, чтобы получить границы элемента управления, который активировал событие (чтобы не заслонить его карточкой контакта).
Rect selectionRect = GetElementRect((FrameworkElement)sender);
Получите объект Contact для отображения. В этом примере создается простой контакт, но код должен извлекать фактический контакт.
// Retrieve the contact to display var contact = new Contact(); var email = new ContactEmail(); email.Address = "[email protected]"; contact.Emails.Add(email);
Отобразите карточку контакта, вызвав метод ShowContactCard.
ContactManager.ShowFullContactCard( contact, selectionRect, Placement.Default); } }
Далее представлен полный код примера.
// 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 = "[email protected]";
contact.Emails.Add(email);
ContactManager.ShowContactCard(
contact, selectionRect, Placement.Default);
}
}
Отображение полной карточки контакта
Чтобы отобразить полную карточку контакта, вызовите метод ShowFullContactCard вместо метода ShowContactCard.
private void onUserClickShowContactCard()
{
Contact contact = new Contact();
ContactEmail email = new ContactEmail();
email.Address = "[email protected]";
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);
}
Извлечение "настоящих" контактов
В примерах в этой статье выполняется создание простого контакта. В настоящем приложении вам, вероятно, потребуется извлечь существующий контакт. Инструкции и приведены в статье Контакты и календарь.
Связанные статьи
Windows developer