Kartu kontak

Kartu kontak menampilkan informasi kontak, seperti nama, nomor telepon, dan alamat, untuk Kontak (mekanisme yang digunakan Windows untuk mewakili orang dan bisnis). Kartu kontak juga memungkinkan pengguna mengedit info kontak. Anda dapat memilih untuk menampilkan kartu kontak ringkas, atau kartu kontak lengkap yang berisi informasi tambahan.

API penting: Metode ShowContactCard, metode ShowFullContactCard, metode IsShowContactCardSupported, Kelas kontak

Ada dua cara untuk menampilkan kartu kontak:

  • Sebagai kartu kontak standar yang muncul di flyout yang dapat diberhentikan cahaya--kartu kontak akan dilepas saat pengguna mengklik di luarnya.
  • Sebagai kartu kontak penuh yang membutuhkan lebih banyak ruang dan tidak dapat diberhentikan cahaya--pengguna harus mengklik tutup untuk menutupnya.
Cuplikan layar memperlihatkan kartu kontak standar.
Kartu kontak standar
Cuplikan layar memperlihatkan kartu kontak lengkap.
Kartu kontak lengkap

Apakah ini kontrol yang tepat?

Gunakan kartu kontak saat Anda ingin menampilkan info kontak untuk kontak. Jika Anda hanya ingin menampilkan nama dan gambar kontak, gunakan kontrol gambar orang tersebut.

Perlihatkan kartu kontak standar

  1. Biasanya, Anda menampilkan kartu kontak karena pengguna mengklik sesuatu: tombol atau mungkin kontrol gambar orang tersebut. Kami tidak ingin menyembunyikan elemen . Untuk menghindari menyembunyikannya, kita perlu membuat Rect yang menjelaskan lokasi dan ukuran elemen.

    Mari kita buat fungsi utilitas yang melakukannya untuk kita --kita akan menggunakannya nanti.

    // 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. Tentukan apakah Anda dapat menampilkan kartu kontak dengan memanggil metode ContactManager.IsShowContactCardSupported . Jika tidak didukung, tampilkan pesan kesalahan. (Contoh ini mengasumsikan bahwa Anda akan menampilkan kartu kontak sebagai respons terhadap peristiwa klik .)

    // Contact and Contact Managers are existing classes 
    private void OnUserClickShowContactCard(object sender, RoutedEventArgs e) 
    { 
        if (ContactManager.IsShowContactCardSupported()) 
        { 
    
    
  3. Gunakan fungsi utilitas yang Anda buat di langkah 1 untuk mendapatkan batas kontrol yang menembakkan peristiwa (sehingga kami tidak menutupinya dengan kartu kontak).

            Rect selectionRect = GetElementRect((FrameworkElement)sender); 
    
  4. Dapatkan objek Kontak yang ingin Anda tampilkan. Contoh ini hanya membuat kontak sederhana, tetapi kode Anda harus mengambil kontak aktual.

                // Retrieve the contact to display
                var contact = new Contact(); 
                var email = new ContactEmail(); 
                email.Address = "jsmith@contoso.com"; 
                contact.Emails.Add(email); 
    
  5. Perlihatkan kartu kontak dengan memanggil metode ShowContactCard .

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

Berikut adalah contoh kode lengkapnya:

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

Perlihatkan kartu kontak lengkap

Untuk menampilkan kartu kontak lengkap, panggil metode ShowFullContactCard alih-alih 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); 
} 

Mengambil kontak "nyata"

Contoh dalam artikel ini membuat kontak sederhana. Dalam aplikasi nyata, Anda mungkin ingin mengambil kontak yang ada. Untuk mengetahui petunjuknya, lihat artikel Kontak dan kalender.