Windows runtime 在捕捉时使用ContactPicker合同
当应用程序被抓拍时,我可以使用合同吗Windows runtime 在捕捉时使用ContactPicker合同,windows-runtime,winrt-xaml,Windows Runtime,Winrt Xaml,当应用程序被抓拍时,我可以使用合同吗 var picker = new Windows.ApplicationModel.Contacts.ContactPicker(); picker.CommitButtonText = "Select"; picker.SelectionMode = Windows.ApplicationModel.Contacts.ContactSelectionMode.Fields; picker.DesiredFields.Add(Windows.Applicat
var picker = new Windows.ApplicationModel.Contacts.ContactPicker();
picker.CommitButtonText = "Select";
picker.SelectionMode = Windows.ApplicationModel.Contacts.ContactSelectionMode.Fields;
picker.DesiredFields.Add(Windows.ApplicationModel.Contacts.KnownContactField.Email);
var contactInformation = await picker.PickSingleContactAsync();
上面的代码在全屏显示时可以工作,但在屏幕一侧捕捉到PickSingleContactAsync()调用时引发以下异常:
用户代码未处理System.Runtime.InteropServices.COMException
HResult=-2147467259
Message=调用COM组件返回错误HRESULT E_FAIL
Source=mscorlib
错误代码=-2147467259
堆栈跟踪:
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
在System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()中
在TouchToneDtmf.MainPage.d__e.MoveNext()上
在里面
d:\Users\Foo\MainPage.xaml.cs:line
556内部异常:
当应用程序被抓拍时,它不工作-在调用ContactPicker之前,您应该检查应用程序的视觉状态 在官方的C#示例中,还有一个方法EnsureUnsnaped(),您可能会发现它在执行此合同时很有用 每次打电话给文件采集器[/contact]时,必须首先确保 应用程序可以通过验证您的应用程序是否未快照来显示文件[/contact]选取器 或者,如果您的应用程序被抓拍,则可以取消抓拍以显示 文件选择器
当应用程序被抓拍时,它不工作-在调用ContactPicker之前,您应该检查应用程序的视觉状态 在官方的C#示例中,还有一个方法EnsureUnsnaped(),您可能会发现它在执行此合同时很有用 每次打电话给文件采集器[/contact]时,必须首先确保 应用程序可以通过验证您的应用程序是否未快照来显示文件[/contact]选取器 或者,如果您的应用程序被抓拍,则可以取消抓拍以显示 文件选择器
using Windows.UI.ViewManagement;
//...
internal bool EnsureUnsnapped()
{
bool unsnapped = ((ApplicationView.Value != ApplicationViewState.Snapped) || ApplicationView.TryUnsnap());
return unsnapped;
}