C# – Win 10 Universal窗口应用程序上的ContentDialog.showAsync
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C# – Win 10 Universal窗口应用程序上的ContentDialog.showAsync,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1728字,纯文字阅读大概需要3分钟。
内容图文
![C# – Win 10 Universal窗口应用程序上的ContentDialog.showAsync](/upload/InfoBanner/zyjiaocheng/795/96c00579faae49b0b1cbda3d89f7ee43.jpg)
我想在启动应用程序后立即将contentDialog显示为登录屏幕.只有在用户通过身份验证后,我才会显示其余页面,否则不会出现任何问题.
我不希望用户点击任何按钮来加载这个内容对话框,它应该在应用程序启动后立即出现.
在MainPage构造函数中,我调用方法来显示对话框.
但我得到了这个例外“价值不在预期的范围内.” (System.ArgumentException),然后应用程序没有加载.
这是来自我的MainPage.xaml
<ContentDialog x:Name="loginDialog"
VerticalAlignment="Stretch"
Title="Login"
PrimaryButtonText="Login"
SecondaryButtonText="Cancel">
<StackPanel>
<StackPanel>
<TextBlock Text="Username" />
<TextBox x:Name="Username" ></TextBox>
</StackPanel>
<StackPanel>
<TextBlock Text="Password" />
<TextBox x:Name="Password" ></TextBox>
</StackPanel>
</StackPanel>
</ContentDialog>
这不可能吗?只有点击按钮才能触发ContentDialog?
解决方法:
首先,您只想在用户在该页面上时显示弹出窗口,因此将代码从构造函数移动到OnNavigatedTo方法.当UI没有准备好时,确实会抛出一个错误,所以很容易就是等待Task.Delay(1);优先,然后调用您的ShowPopup方法.
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
await Task.Delay(1);
var result = await loginDialog.ShowAsync();
}
编辑:正如@sibbl所提到的,如果你使用代码隐藏,那么使用页面Loaded事件会更明智.我去OnNavigatedTo因为我总是使用Prism用于MVVM而在ViewModel中它是你需要实现的OnNavigatedTo方法.
private async void MainPage_OnLoaded(object sender, RoutedEventArgs e)
{
var result = await ShowPopup();
}
额外注意:您的ShowPopup方法应该是NOT use async void,因为这只应该用于事件处理程序.我真的鼓励你去async / await上阅读,以防止’怪异’的错误.所以你的代码归结为:
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
await Task.Delay(1);
var result = await ShowPopup();
}
private Task<ContentDialogResult> ShowPopup()
{
return loginDialog.ShowAsync().AsTask();
}
内容总结
以上是互联网集市为您收集整理的C# – Win 10 Universal窗口应用程序上的ContentDialog.showAsync全部内容,希望文章能够帮你解决C# – Win 10 Universal窗口应用程序上的ContentDialog.showAsync所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。