web-dev-qa-db-ja.com

Windows 10ユニバーサルアプリでモーダルウィンドウを表示するにはどうすればよいですか?

Windows 10でメール統合アプリを使用しているときにアカウントを追加すると(設定->アカウント->アカウントの追加)、アカウントを選択するためのモーダルウィンドウがポップアップするようです。 MessageDialogを使おうとしていますが、カスタムコンテンツを入れることができません。

[〜#〜]編集[〜#〜]:これはスクリーンショットです screenshot

誰かがそれを実装する方法を知っていますか、それともいくつかのAPIがそれを行うことができますか?

注:このウィンドウを開くと、メインウィンドウを最小化/最大化/閉じることさえできません。したがって、これは間違いなくモーダルウィンドウです。

10
tao

私はまだそれを使用していませんが、ContentDialogapiを探していると思います。

var dialog = new ContentDialog() {
    Title = "Lorem Ipsum",
    MaxWidth = this.ActualWidth // Required for Mobile!
    Content = YourXamlContent
};


dialog.PrimaryButtonText = "OK";
dialog.IsPrimaryButtonEnabled = false;
dialog.PrimaryButtonClick += delegate {
};

var result = await dialog.ShowAsync();

content dialog

ダイアログのmsdnガイドライン: リンク

msdn ContentDialog API: リンク

18
Liero

たとえば、App.xaml.csで、次のような新しいビューを簡単に作成できます。

public static async Task<bool> TryShowNewWindow<TView>(bool switchToView)
{
    var newView = CoreApplication.CreateNewView();
    int newViewId = 0;
    await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        var frame = new Frame();
        frame.Navigate(typeof(TView), null);
        Window.Current.Content = frame;

        newViewId = ApplicationView.GetForCurrentView().Id;
    });
    var viewShown = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(newViewId);
    if (switchToView && viewShown)
    {
        // Switch to new view
        await ApplicationViewSwitcher.SwitchAsync(newViewId);
    }
    return viewShown;
}

詳細については、次の2つのガイドを参照してください。

5
Herdo

Template10プロジェクトテンプレートを使用する場合は、ModalDialogコントロールを使用できます: https://github.com/Windows-XAML/Template10/wiki/Docs-%7C-Controls#modaldialog

0
Danh