如何在Windows Phone 7上获取联系人图片

时间:2013-11-08 15:15:47

标签: c# windows-phone-7

如何使用phoneNumber选择器在用户选择的Windows Phone 7上获取联系人图片或联系人图片。

        PhoneNumberChooserTask phoneNumberChooserTask;
        phoneNumberChooserTask = new PhoneNumberChooserTask();
        phoneNumberChooserTask.Completed += new EventHandler<PhoneNumberResult>(phoneNumberChooserTask_Completed);
        phoneNumberChooserTask.Show();

和用户选择联系人后的方法

public void phoneNumberChooserTask_Completed(object sender, PhoneNumberResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
            MessageBox.Show("The phone number for " + e.DisplayName + " is " + e.PhoneNumber);                
        }
    }

上面的代码是根据MSDN .. 上面的代码显示了电话号码。 如何获取联系人图片位置或数据URI?

2 个答案:

答案 0 :(得分:1)

实际上这很简单:

添加参考using Microsoft.Phone.UserData。然后,当您的任务完成后,按名称或电话号码搜索所有联系人,例如:

    private void phoneNumberChooserTask_Completed(object sender, PhoneNumberResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
            Contacts contacts = new Contacts();
            contacts.SearchCompleted += OnContactsSearchCompleted;
            contacts.SearchAsync(e.PhoneNumber, FilterKind.PhoneNumber, null);
        }
    }

    private void OnContactsSearchCompleted(object sender, ContactsSearchEventArgs e)
    {
        if (e.Results != null)
        {
            var contactImg = e.Results.Select(x => x.GetPicture()).FirstOrDefault();
            if (contactImg != null)
            {
                //do something with
            }
        }
    }

不要忘记添加功能 ID_CAP_CONTACTS

答案 1 :(得分:0)

由于联系人照片不是属性,而是通过调用GetPicture方法检索,因此您需要一个自定义数据转换器来绑定它们。在此过程中,您将代码放在按钮单击事件中仅用于测试目的。在您自己的应用程序中,您可以在任何需要的地方访问联系人照片。 有关详细信息http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh286418(v=vs.105).aspx