1

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

        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?

4

2 回答 2

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

于 2013-11-08T16:19:38.507 回答
0

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

于 2014-02-11T09:39:28.450 回答