【发布时间】:2013-05-02 14:17:03
【问题描述】:
有没有人听说过 MessageDialog 没有在 Windows 8 平板电脑上显示的问题?或者更具体地说是三星700t?它使用常规的英特尔进程而不是 ARM。我在笔记本电脑上构建了应用程序,从笔记本电脑调试时会显示消息对话框,在平板电脑模拟器上显示,但在实际平板电脑上不显示。
我正在使用 Caliburn.Micro IResult 接口在视图中显示消息对话框。
以下是我正在使用的代码片段:
public IEnumerable<IResult> NavExecute(String method)
{
Windows.UI.ViewManagement.ApplicationView.TryUnsnap();
var conn = NetworkInformation.GetInternetConnectionProfile();
if (conn.GetNetworkConnectivityLevel() != NetworkConnectivityLevel.InternetAccess)
{
yield return new MessageDialogResult("Internet Connection Not Detected", "Connection Error");
netOn = false;
}
} 以上是我的视图模型基类,下面是 IResult 类本身的实现:
public class MessageDialogResult : ResultBase
{
private readonly string _content;
private readonly string _title;
public MessageDialogResult(string content, string title)
{
_content = content;
_title = title;
}
public async override void Execute(ActionExecutionContext context)
{
var dialog = new MessageDialog(_content, _title);
await dialog.ShowAsync();
OnCompleted();
}
}
我怀疑这不是代码的问题,因为我在两个设备上都在 x86 模式下进行调试(在有人问我为什么不对所有设备进行调试之前,这是因为我使用的是 SQLite,它需要一个单独的包每个架构。)
我不确定 Windows 8 中是否存在禁用应用弹出窗口的设置,但我找不到。
有什么想法吗?
【问题讨论】:
-
您还有其他 RT 平板电脑可以用来试用吗?代码对我来说看起来不错,但在
ShowAsync期间会发生什么事情吗?这将导致协程中止(它不会再抛出异常,它只是将其放入结果回调中)
标签: windows-8 microsoft-metro caliburn.micro tablet-pc messagedialog