/// <summary>
        /// Shows a new <see cref="InputDialog" />.
        /// </summary>
        /// <param name="dialogHost">The <see cref="DialogHost" /></param>
        /// <param name="args">The arguments for the dialog initialization</param>
        /// <returns></returns>
        public static async Task<bool> ShowDialogAsync(DialogHost dialogHost, InputDialogArguments args)
        {
            InputDialog dialog = InitDialog(args);

            object result = await dialogHost.ShowDialog(dialog, args.OpenedHandler, args.ClosingHandler);

            return (bool)result;
        }
        private static InputDialog InitDialog(InputDialogArguments args)
        {
            InputDialog dialog = new InputDialog
            {
                Title = args.Title,
                Message = args.Message,
                StackedButtons = args.StackedButtons,
                CustomContent = args.CustomContent,
                CustomContentTemplate = args.CustomContentTemplate,
                ValidationHandler = args.ValidationHandler
            };

            if (!string.IsNullOrWhiteSpace(args.OkButtonLabel))
            {
                dialog.OkButtonLabel = args.OkButtonLabel;
            }

            if (!string.IsNullOrWhiteSpace(args.CancelButtonLabel))
            {
                dialog.CancelButtonLabel = args.CancelButtonLabel;
            }

            return dialog;
        }