연락처 카드Contact card

연락처 카드는 연락처(Windows가 사용자와 회사를 나타내기 위해 사용하는 메커니즘)에 이름, 전화 번호, 주소 등의 연락처 정보를 표시합니다.The contact card displays contact information, such as the name, phone number, and address, for a Contact (the mechanism Windows uses to represent people and businesses). 또한 연락처 카드는 사용자가 연락처 정보를 편집할 수 있게 해줍니다.The contact card also lets the user edit contact info. 간략한 연락처 카드를 표시할 것인지, 추가 정보가 포함된 전체 연락처 카드를 표시할 것인지 선택할 수 있습니다.You can choose to display a compact contact card, or a full contact card that contains additional information.

중요 API: ShowContactCard 메서드, ShowFullContactCard 메서드, IsShowContactCardSupported 메서드, Contact 클래스Important APIs: ShowContactCard method, ShowFullContactCard method, IsShowContactCardSupported method, Contact class

다음과 같은 두 가지 방법으로 연락처 카드를 표시할 수 있습니다.There are two ways to display the contact card:

  • 플라이아웃에 표시되는 표준 연락처 카드는 신속 처리가 가능하기 때문에 사용자가 플라이아웃 밖을 클릭하면 바로 사라집니다.As a standard contact card that appears in a flyout that is light-dismissable--the contact card dissapears when the user clicks outside of it.
  • 전체 연락처 카드는 더 많은 공간을 차지하고 신속 처리가 불가능하기 때문에 사용자가 닫기를 클릭해야만 닫을 수 있습니다.As a full contact card that takes up more space and is not light-dismissable--the user must click close to close it.
Screenshot showing a standard contact card.
표준 연락처 카드The standard contact card
Screenshot showing a full contact card.
전체 연락처 카드The full contact card

올바른 컨트롤인가요?Is this the right control?

연락을 위해 연락처 정보를 표시하고 싶을 때는 연락처 정보를 사용합니다.Use the contact card when you want to display contact info for a contact. 연락처의 이름과 사진만 표시하고 싶으면 인물 사진 컨트롤을 사용합니다.If you only want to display the contact's name and picture, use the person picture control.

표준 연락처 카드 표시Show a standard contact card

  1. 일반적으로 사용자가 단추든 인물 사진 컨트롤이든 클릭하면 연락처 카드가 표시됩니다.Typically, you show a contact card because the user clicked something: a button or perhaps the person picture control. 이 요소를 숨기고 싶지는 않을 것입니다.We don't want to hide the element. 요소가 숨겨지지 않게 하려면 요소의 위치와 크기를 설명하는 Rect를 만들어야 합니다.To avoid hiding it, we need to create a Rect that describes the location and size of the element.

    나중에 사용할 수 있도록 여기에 필요한 유틸리티 기능을 만들어 보겠습니다.Let's create a utility function that does that for us--we'll use it later.

    // 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. ContactManager.IsShowContactCardSupported 메서드를 호출하여 연락처 카드를 표시할 수 있는지 여부를 판단합니다.Determine whether you can display the contact card by calling the ContactManager.IsShowContactCardSupported method. 지원되지 않는 경우에는 오류 메시지가 표시됩니다If it's not supported, display an error message. (이 예제에서는 클릭 이벤트에 대한 응답으로 연락처 카드가 표시된다고 가정합니다.)(This example assumes that you'll be showing the contact card in response to a click event .)

    // Contact and Contact Managers are existing classes 
    private void OnUserClickShowContactCard(object sender, RoutedEventArgs e) 
    { 
        if (ContactManager.IsShowContactCardSupported()) 
        { 
    
    
  3. 1단계에서 생성한 유틸리티 기능을 사용하여 이벤트를 발생시킨 컨트롤의 경계를 가져옵니다(연락처 정보로는 해결할 수 없기 때문에).Use the utility function you created in step 1 to get the bounds of the control that fired the event (so we don't cover it up with the contact card).

            Rect selectionRect = GetElementRect((FrameworkElement)sender); 
    
  4. 표시하고 싶은 연락처 개체를 다운로드합니다.Get the Contact object you want to display. 이 예제에서는 간단한 연락처를 만들어 보았지만, 코드로 실제 연락처를 검색해 봐야 합니다.This example just creates a simple contact, but your code should retrieve an actual contact.

                // Retrieve the contact to display
                var contact = new Contact(); 
                var email = new ContactEmail(); 
                email.Address = "jsmith@contoso.com"; 
                contact.Emails.Add(email); 
    
  5. ShowContactCard 메서드를 호출하여 연락처 카드를 표시합니다.Show the contact card by calling the ShowContactCard method.

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

다음은 전체 코드 예제입니다.Here's the complete code example:

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

전체 연락처 카드 표시Show a full contact card

전체 연락처 카드를 표시하려면 ShowContactCard가 아닌 ShowFullContactCard 메서드를 호출합니다.To show the full contact card, call the ShowFullContactCard method instead of 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); 
} 

"실제" 연락처 검색Retrieving "real" contacts

이 문서의 예제에서는 간단한 연락처를 만들어 보았습니다.The examples in this article create a simple contact. 실제 앱에서는 아마도 기존 연락처를 검색하고 싶을 것입니다.In a real app, you'd probably want to retrieve an existing contact. 이에 대한 지침은 연락처 및 일정 문서를 참조하세요.For instructions, see the Contacts and calendar article.