gpt4 book ai didi

c# - 单击“确定”后的 ContentDialog 延迟

转载 作者:太空宇宙 更新时间:2023-11-03 22:35:39 25 4
gpt4 key购买 nike

我有一个辅助方法,它显示一个带有接受字符串数据的输入框的 ContentDialog。我的问题是,在调用者取回字符串之前单击“确定”大约需要 1 秒(这非常明显)。我推测可能是对话框在对话框返回之前淡出默认动画/过渡以结束。

在下面的代码中,在对话框中单击“确定”与触发“return textBox.Text”之间大约有 1 秒的延迟。

    /// <summary>
/// Shows an simple input box to get a string value in return.
/// </summary>
/// <param name="title">The title to show at the top of the dialog.</param>
/// <param name="message">The message shown directly above the input box.</param>
/// <param name="defaultValue">A value to prepopulate in the input box if any.</param>
/// <returns></returns>
public static async Task<string> ShowInput(string message, string defaultValue, string title)
{
var dialog = new ContentDialog
{
Title = title
};

var panel = new StackPanel();
panel.Children.Add(new TextBlock { Text = message, TextWrapping = Windows.UI.Xaml.TextWrapping.Wrap });

var textBox = new TextBox();
textBox.Text = defaultValue;
textBox.SelectAll();

textBox.KeyUp += (o, e) =>
{
if (e.Key == Windows.System.VirtualKey.Enter)
{
dialog.Hide();
}

e.Handled = true;
};

panel.Children.Add(textBox);

dialog.Content = panel;
dialog.PrimaryButtonText = "OK";
await dialog.ShowAsync();

return textBox.Text;
}

我的问题是:

  1. 我是否遗漏了一些我应该设置的东西,或者在 ContentDialog 上单击“确定”后是否出现了开箱即用的行为?

  2. 如果它是由转换引起的,我可以禁用它吗?

  3. 有什么方法可以加快从点击“确定”到等待返回之间的时间?

我正在与 1809 Build 17763.379 比赛。

提前谢谢你。

最佳答案

以下解决方案并不是真正的性能修复,因为您发布的代码没有任何问题。基本思想是 - 由于此过程需要一段时间,具体取决于设备,您可以在调用 ShowInput() 方法之前显示一个微调器/加载屏幕,并在使用完值后将其隐藏/ShowInput() 返回的文本。

例如你可以尝试这样的事情:

showLoader();
string x = await ShowInput("message","","title");
...
//some more code
...
hideLoader();

showLoader/hideLoader 将显示隐藏轻量级加载程序屏幕,如下所示:

enter image description here

这将确保用户等待代码执行完毕。 (如果您正在对文本输入做一些非常微不足道的事情,这可能有点矫枉过正)

关于c# - 单击“确定”后的 ContentDialog 延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55305898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com