コード例 #1
0
            async Task <string[]> Show(SystemDialog d, Window parent)
            {
                var model = new ManagedFileChooserViewModel((FileSystemDialog)d);

                var dialog = new T
                {
                    Content     = new ManagedFileChooser(),
                    DataContext = model
                };

                dialog.Closed += delegate { model.Cancel(); };

                string[] result = null;

                model.CompleteRequested += items =>
                {
                    result = items;
                    dialog.Close();
                };

                model.CancelRequested += dialog.Close;

                await dialog.ShowDialog <object>(parent);

                return(result);
            }
コード例 #2
0
        static void SystemDialogOnClickCancel(SystemDialog systemDialog)
        {
            // class SystemDialog { private void OnClickCancel(); }
            MethodInfo methodInfo = typeof(SystemDialog).GetMethod(
                "OnClickCancel",
                BindingFlags.NonPublic | BindingFlags.Instance,
                null,
                new Type[] { },
                null
                );

            methodInfo.Invoke(systemDialog, new object[] { });
        }
コード例 #3
0
        // ダイアログの「OK」「Cancel」をクリックする
        bool UpdateDialogClick()
        {
            SystemDialog systemDialog = GameMain.Instance.SysDlg;

            if (systemDialog.gameObject.activeSelf)
            {
                if (Input.GetKeyDown(kcMessageWindowClick))
                {
                    SystemDialogOnClickOk(systemDialog);
                    return(true);
                }
                if (Input.GetKeyDown(kcCancel))
                {
                    SystemDialogOnClickCancel(systemDialog);
                    return(true);
                }
            }
            return(false);
        }
コード例 #4
0
            /// <summary>
            /// show as an asynchronous operation.
            /// </summary>
            /// <param name="d">The d.</param>
            /// <param name="parent">The parent.</param>
            /// <param name="options">The options.</param>
            /// <returns>System.String[].</returns>
            private async Task <string[]> ShowAsync(SystemDialog d, Window parent, ManagedFileDialogOptions options = null)
            {
                var model = new ManagedDialogViewModel((FileSystemDialog)d,
                                                       options ?? new ManagedFileDialogOptions());

                var langService  = DIResolver.Get <ILanguagesService>();
                var language     = langService.GetSelected();
                var fontResolver = DIResolver.Get <IFontFamilyManager>();
                var font         = fontResolver.ResolveFontFamily(language.Font);

                var dialog = new T
                {
                    Icon                  = StaticResources.GetAppIcon(),
                    Content               = new ManagedDialog(),
                    Title                 = d.Title,
                    DataContext           = model,
                    SizeToContent         = SizeToContent.Width,
                    WindowStartupLocation = WindowStartupLocation.CenterOwner,
                    FontFamily            = font.GetFontFamily(),
                    Height                = 700
                };

                dialog.Closed += delegate { model.Cancel(); };

                string[] result = null;

                model.CompleteRequested += items =>
                {
                    result = items;
                    dialog.Close();
                };

                model.CancelRequested += dialog.Close;

                await dialog.ShowDialog <object>(parent);

                return(result);
            }
コード例 #5
0
 static void SystemDialogOnClickOk(SystemDialog systemDialog)
 {
     // class SystemDialog { private void OnClickOk(); }
     MethodInfo methodInfo = typeof(SystemDialog).GetMethod(
         "OnClickOk",
         BindingFlags.NonPublic | BindingFlags.Instance,
         null,
         new Type[] { },
         null
     );
     methodInfo.Invoke(systemDialog, new object[] { });
 }
コード例 #6
0
            async Task <string[]> Show(SystemDialog d, Window parent, ManagedFileDialogOptions options = null)
            {
                var model = new ManagedFileChooserViewModel((FileSystemDialog)d,
                                                            options ?? new ManagedFileDialogOptions());

                var dialog = new T
                {
                    Content     = new ManagedFileChooser(),
                    Title       = d.Title,
                    DataContext = model
                };

                dialog.Closed += delegate { model.Cancel(); };

                string[] result = null;

                model.CompleteRequested += items =>
                {
                    result = items;
                    dialog.Close();
                };

                model.OverwritePrompt += async(filename) =>
                {
                    Window overwritePromptDialog = new Window()
                    {
                        Title                 = "Confirm Save As",
                        SizeToContent         = SizeToContent.WidthAndHeight,
                        WindowStartupLocation = WindowStartupLocation.CenterOwner,
                        Padding               = new Thickness(10),
                        MinWidth              = 270
                    };

                    string name = Path.GetFileName(filename);

                    var panel = new DockPanel()
                    {
                        HorizontalAlignment = Layout.HorizontalAlignment.Stretch
                    };

                    var label = new Label()
                    {
                        Content = $"{name} already exists.\nDo you want to replace it?"
                    };

                    panel.Children.Add(label);
                    DockPanel.SetDock(label, Dock.Top);

                    var buttonPanel = new StackPanel()
                    {
                        HorizontalAlignment = Layout.HorizontalAlignment.Right,
                        Orientation         = Layout.Orientation.Horizontal,
                        Spacing             = 10
                    };

                    var button = new Button()
                    {
                        Content             = "Yes",
                        HorizontalAlignment = Layout.HorizontalAlignment.Right
                    };

                    button.Click += (sender, args) =>
                    {
                        result = new string[1] {
                            filename
                        };
                        overwritePromptDialog.Close();
                        dialog.Close();
                    };

                    buttonPanel.Children.Add(button);

                    button = new Button()
                    {
                        Content             = "No",
                        HorizontalAlignment = Layout.HorizontalAlignment.Right
                    };

                    button.Click += (sender, args) =>
                    {
                        overwritePromptDialog.Close();
                    };

                    buttonPanel.Children.Add(button);

                    panel.Children.Add(buttonPanel);
                    DockPanel.SetDock(buttonPanel, Dock.Bottom);

                    overwritePromptDialog.Content = panel;

                    await overwritePromptDialog.ShowDialog(dialog);
                };

                model.CancelRequested += dialog.Close;

                await dialog.ShowDialog <object>(parent);

                return(result);
            }