Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Karta kontaktowa wyświetla informacje kontaktowe, takie jak imię i nazwisko, numer telefonu i adres kontaktu (mechanizm używany przez system Windows do reprezentowania osób i firm). Karta kontaktowa umożliwia również użytkownikowi edytowanie informacji kontaktowych. Możesz wybrać wyświetlanie kompaktowej karty kontaktowej lub pełnej karty kontaktowej zawierającej dodatkowe informacje.
Ważne interfejsy API: metoda ShowContactCard, metoda ShowFullContactCard, IsShowContactCardSupported,klasa Contact
Istnieją dwa sposoby wyświetlania karty kontaktowej:
- ** Jako standardowa karta kontaktowa wyświetlana w wysuwanym oknie, które można z łatwością zamknąć — karta kontaktowa znika, gdy użytkownik kliknie poza okno.
- Jako pełna karta kontaktowa, która zajmuje więcej miejsca i nie jest łatwa do odrzucenia — użytkownik musi kliknąć zamknij, aby ją zamknąć.
Czy jest to właściwa kontrola?
Użyj karty kontaktowej, jeśli chcesz wyświetlić informacje kontaktowe dla kontaktu. Jeśli chcesz wyświetlić tylko imię i nazwisko kontaktu, użyj kontrolki obrazu osoby.
Pokaż standardową kartę kontaktową
Zazwyczaj wyświetlasz kartę kontaktową, ponieważ użytkownik kliknął coś: przycisk lub kontrolkę zdjęcia osoby. Nie chcemy ukrywać elementu. Aby uniknąć jego ukrywania, musimy utworzyć rect opisujący lokalizację i rozmiar elementu.
Utwórzmy funkcję narzędzia, która robi to dla nas — użyjemy jej później.
// 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; }Określ, czy możesz wyświetlić kartę kontaktową, wywołując metodę ContactManager.IsShowContactCardSupported . Jeśli nie jest obsługiwana, wyświetl komunikat o błędzie. (W tym przykładzie przyjęto założenie, że w odpowiedzi na zdarzenie kliknięcia zostanie wyświetlona karta kontaktowa).
// Contact and Contact Managers are existing classes private void OnUserClickShowContactCard(object sender, RoutedEventArgs e) { if (ContactManager.IsShowContactCardSupported()) {Użyj funkcji pomocniczej utworzonej w kroku 1, aby uzyskać granice kontrolki, która zainicjowała zdarzenie (aby nie zakrywać jej kartą kontaktową).
Rect selectionRect = GetElementRect((FrameworkElement)sender);Pobierz obiekt Contact , który chcesz wyświetlić. W tym przykładzie wystarczy utworzyć prosty kontakt, ale kod powinien pobrać rzeczywisty kontakt.
// Retrieve the contact to display var contact = new Contact(); var email = new ContactEmail(); email.Address = "jsmith@contoso.com"; contact.Emails.Add(email);Pokaż kartę kontaktową, wywołując metodę ShowContactCard .
ContactManager.ShowFullContactCard( contact, selectionRect, Placement.Default); } }
Oto kompletny przykład kodu:
// 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);
}
}
Pokaż pełną kartę kontaktową
Aby wyświetlić pełną kartę kontaktową, wywołaj metodę ShowFullContactCard zamiast 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);
}
Pobieranie "rzeczywistych" kontaktów
Przykłady w tym artykule tworzą prosty kontakt. W prawdziwej aplikacji prawdopodobnie chciałbyś wyszukać istniejący kontakt. Aby uzyskać instrukcje, zobacz artykuł Kontakty i kalendarz.
Powiązane artykuły
- kontakty i kalendarz
- przykładowe karty kontaktowe
- Zarządzanie obrazami osób
Windows developer