当前位置:  开发笔记 > 编程语言 > 正文

消息对话框中的文本输入?ContentDialog?

如何解决《消息对话框中的文本输入?ContentDialog?》经验,为你挑选了2个好方法。

我想知道什么是允许用户在Windows 10通用应用程序中将文本输入到MessageDialog的最佳方式.(忘记密码系统).从我已经完成的研究来看,使用MessageDialog似乎不太可能,但可以使用ContentDialog完成.到目前为止,我发现这个网站大致解释了如何使用ContentDialog,但没有解释文本输入,以及MSDN上的这篇文章确实展示了如何使用带有ContentDialog的文本框,但显示的方法对我来说似乎相当复杂.

那么,有没有人知道这样做的更简单的方法,还是MSDN最简单的方式?

谢谢你的帮助

弥敦道



1> Aybe..:

是的,这是达到您所需要的最低限度:

在此输入图像描述

页面:

using System;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;

namespace App1
{
    public sealed partial class MainPage
    {
        public MainPage()
        {
            InitializeComponent();
            Loaded += MainPage_Loaded;
        }

        private async void MainPage_Loaded(object sender, RoutedEventArgs e)
        {
            var dialog1 = new ContentDialog1();
            var result = await dialog1.ShowAsync();
            if (result == ContentDialogResult.Primary)
            {
                var text = dialog1.Text;
            }
        }
    }
}

对话(代码):

using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;

namespace App1
{
    public sealed partial class ContentDialog1 : ContentDialog
    {
        public static readonly DependencyProperty TextProperty = DependencyProperty.Register(
            "Text", typeof (string), typeof (ContentDialog1), new PropertyMetadata(default(string)));

        public ContentDialog1()
        {
            InitializeComponent();
        }

        public string Text
        {
            get { return (string) GetValue(TextProperty); }
            set { SetValue(TextProperty, value); }
        }

        private void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
        {
        }

        private void ContentDialog_SecondaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
        {
        }
    }
}

对话框(XAML):



    
        
    



2> Kibernetik..:

我使用这样的函数来向用户请求文本:

private async Task InputTextDialogAsync(string title)
{
    TextBox inputTextBox = new TextBox();
    inputTextBox.AcceptsReturn = false;
    inputTextBox.Height = 32;
    ContentDialog dialog = new ContentDialog();
    dialog.Content = inputTextBox;
    dialog.Title = title;
    dialog.IsSecondaryButtonEnabled = true;
    dialog.PrimaryButtonText = "Ok";
    dialog.SecondaryButtonText = "Cancel";
    if (await dialog.ShowAsync() == ContentDialogResult.Primary)
        return inputTextBox.Text;
    else
        return "";
}

及其用法:

string text = await InputTextDialogAsync("Title");

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有