我试图通过为我的Windows 8 Metro应用程序设置弹出窗口来调用messagedialog,但它导致消息对话框闪烁。以下是代码。
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
SettingsPane.GetForCurrentView().CommandsRequested+=settings_CommandsRequested;
}
private void Settings_CommandsRequested(SettingsPane sender, SetttingsPaneCommandsRequestedEventArgs args)
{
SettingsCommand cmd = new SettingsCommand("test","test1232",new UICommandInvokedHandler(CreateDialog));
args.Request.ApplicationCommands.Add(cmd);
}
private void CreateDialog(IUICommand command)
{
if (ReferenceEquals(command.Id, "cmd"))
{
MessageDialog md = new MessageDialog("Hi");
md.ShowAsync();
}
}
答案 0 :(得分:2)
我已联系官方微软开发支持,他们的回复是: “在SettingsFlyout中不建议使用MessageDialog”。
因此,如果你想实现一些simillar来支持用户从SettingsPane做出的决定,你应该: 1)启用弹出窗口中的切换功能。 2)设置SettingsFlyout以便用户做出决定(例如在Logout情况下,在settingsFlyout中添加Yes / no按钮) - 这就是我选择的选项。