ContactPicker.PickSingleContactAsync和ContactPicker.PickMultipleContactsAsync的文档指出,它们“可能”不支持后Windows8.1或Windows 8.1
并且支持他们不是。不仅过时了,而且已经过时了,取而代之的是ContactPicker.PickContactAsync和ContactPicker.PickContactsAsync,旧的方法在Windows 10下抛出一个未实现的异常。
在回答了我关于堆栈溢出的最后一个问题之后,我阅读了用于PickContactsAsync的Windows 10文档页并下载了页面末尾引用的样本。在Win10下运行该示例,我发现:
ContactPicker.PickContactAsync只允许按预期选择一个联系人。ContactPicker.PickContactsAsync可以工作,但只允许选择一个联系人,这与样本提出的期望相反。ContactPicker.PickContactsAsync的行为是一个很快就要被纠正的错误,一个简单的故障,因为油漆还在Windows 10上干燥,还是某个天才决定停止对多种联系人选择的支持?
我可以编写一个循环,这样用户就可以连续地选择它们--在短期内我看不到任何其他选项--但这是一种糟糕的用户体验。如果有一些设置或选项,我需要设置,这将神奇地解决问题,我很想听听它。
下面提供支持信息以获得好的答案
这就是选择器在启动时的样子。

应用程序栏在哪里?没有显示出来。如果单击或点击联系人,则会选中该联系人并关闭选择器。只有当您单击“选择联系人”时,它才会出现,如下所示:

如果然后单击有滴答字形的列表,则UI突然更改为:

一旦你知道了,这是很容易的,也是很难发现的。这无疑是被称为Windows 8的突发性突发性事件的残余。
其他伤亡包括在鼠标/键盘环境中允许范围和多选择的Shift和Ctrl键。这些行为是由Windows ListBox实现的,公共对话框使用它。假设新的UI不使用ListBox。
微软的一些主动建议
免费升级Windows 10的全部目的是将其锚定在家中,因为这实现了两件事。
像这里考虑的那样的UX灾难会毁掉你的好工作。联系人选择器是新的公共对话框。它会影响到一切。在这里,尽管应用程序开发人员的愚蠢之处,你仍然可以最大限度地利用一个好的用户体验。
我认为您应该这样做:当通过PickContactsAsync调用联系人选择器时,已经在多选择模式下打开它。
还有另一件事
当我抛弃微软的时候,样本中也有一个错误。在Scenario2_PickContacts.xaml.cs中,这一行
if (this.contacts.Count > 0)应改为
if (this.contacts != null && this.contacts.Count > 0)因为如果您不选择任何东西,那么this.contacts是空的,并且它是barfs。
发布于 2015-08-27 08:18:52
PickContactsAsync可以选择多个联系人,但是它的UI是隐藏的。您需要单击应用程序栏中的“选择”按钮。(看起来像一个带有复选框的列表。)
https://stackoverflow.com/questions/31902809
复制相似问题