Visitenkarte

Die Visitenkarte umfasst Kontaktinformationen wie Name, Telefonnummer und Adresse für einen Kontakt (Mechanismus, der in Windows zum Darstellen von Personen und Unternehmen verwendet wird). Benutzer können Kontaktinformationen in der Visitenkarte auch ändern. Sie können eine kompakte Visitenkarte oder eine vollständige Visitenkarte anzeigen, die zusätzliche Informationen enthält.

Wichtige APIs: ShowContactCard-Methode, ShowFullContactCard-Methode, IsShowContactCardSupported-Methode, Contact-Klasse

Es gibt zwei Möglichkeiten, die Visitenkarte anzuzeigen:

  • Als Standardvisitenkarte, die in einem ausblendbaren Flyout angezeigt wird (die Visitenkarte wird ausgeblendet, wenn der Benutzer auf eine Stelle außerhalb der Visitenkarte klickt).
  • Als vollständige Visitenkarte, die mehr Platz in Anspruch nimmt und nicht ausgeblendet werden kann (der Benutzer muss auf Schließen klicken, um sie zu schließen).
Screenshot: Standardkontakt Karte
Standardvisitenkarte
Screenshot eines vollständigen Kontakts Karte
Vollständige Visitenkarte

Ist dies das richtige Steuerelement?

Verwenden Sie die Visitenkarte, wenn Kontaktinformationen zu einem Kontakt angezeigt werden sollen. Wenn Sie nur den Namen und das Bild des Kontakts anzeigen möchten, verwenden Sie das Steuerelement für Bilder von Personen.

Anzeigen einer Standardvisitenkarte

  1. Eine Visitenkarte wird in der Regel angezeigt, weil der Benutzer auf ein Element geklickt hat: auf eine Schaltfläche oder möglicherweise auf das Steuerelement für Bilder von Personen. Das Element soll nicht ausgeblendet werden. Um zu vermeiden, dass es ausgeblendet wird, müssen wir ein Rect erstellen, das die Position und Größe des Elements beschreibt.

    Wir erstellen eine Hilfsfunktion, die dies automatisch ausführt (diese wird später verwendet).

    // 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. Ermitteln Sie, ob Sie die Visitenkarte anzeigen können, indem Sie die ContactManager.IsShowContactCardSupported-Methode aufrufen. Wenn sie nicht unterstützt wird, wird eine Fehlermeldung angezeigt. (In diesem Beispiel wird davon ausgegangen, dass Sie die Visitenkarte als Reaktion auf ein Click-Ereignis anzeigen.)

    // Contact and Contact Managers are existing classes 
    private void OnUserClickShowContactCard(object sender, RoutedEventArgs e) 
    { 
        if (ContactManager.IsShowContactCardSupported()) 
        { 
    
    
  3. Verwenden Sie die in Schritt 1 erstellte Hilfsfunktion, um die Grenzen des Steuerelements abzurufen, von dem das Ereignis ausgelöst wurde (damit es nicht von der Visitenkarte verdeckt wird).

            Rect selectionRect = GetElementRect((FrameworkElement)sender); 
    
  4. Rufen Sie das Contact-Objekt auf, das angezeigt werden soll. In diesem Beispiel wird lediglich ein einfacher Kontakt erstellt, der Code sollte jedoch ein tatsächlicher Kontakt abrufen.

                // Retrieve the contact to display
                var contact = new Contact(); 
                var email = new ContactEmail(); 
                email.Address = "jsmith@contoso.com"; 
                contact.Emails.Add(email); 
    
  5. Zeigen Sie den Kontakt Karte an, indem Sie die ShowContactCard-Methode aufrufen.

            ContactManager.ShowFullContactCard(
                contact, selectionRect, Placement.Default); 
        } 
    } 
    

Hier sehen Sie den vollständigen Beispielcode:

// 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); 
    } 
} 

Anzeigen einer vollständigen Visitenkarte

Rufen Sie zum Anzeigen der vollständigen Visitenkarte die ShowFullContactCard-Methode anstelle der ShowContactCard -Methode auf.

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); 
} 

Abrufen von „echten“ Kontakten

In den Beispielen in diesem Artikel wird ein einfacher Kontakt erstellt. In einer echten App würden Sie wahrscheinlich einen vorhandenen Kontakt abrufen. Anweisungen finden Sie im Artikel Kontakte und Kalender.