Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <Page
- x:Class="DuckTracker.MainPage"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:local="using:DuckTracker"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- mc:Ignorable="d">
- <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
- <Grid.RowDefinitions>
- <RowDefinition></RowDefinition>
- <RowDefinition></RowDefinition>
- <RowDefinition></RowDefinition>
- </Grid.RowDefinitions>
- <Grid.ColumnDefinitions>
- <ColumnDefinition></ColumnDefinition>
- <ColumnDefinition></ColumnDefinition>
- </Grid.ColumnDefinitions>
- <TextBlock Grid.Row="0" Grid.Column="0" Height="20">Name:</TextBlock>
- <TextBox Grid.Row="0" Grid.Column="1" Height="20"></TextBox>
- <Button Click="Button_Click" Grid.Row="2" VerticalAlignment="Bottom">Login</Button>
- </Grid>
- </Page>
- using System;
- using System.Threading.Tasks;
- using Windows.UI.Xaml;
- using Windows.UI.Xaml.Controls;
- namespace DuckTracker
- {
- public sealed partial class MainPage : Page
- {
- public MainPage()
- {
- this.InitializeComponent();
- }
- private async void Button_Click(object sender, RoutedEventArgs e)
- {
- bool canLogin = await CanLogin();
- if (canLogin == false)
- {
- try
- {
- await AlertWithMessages("Fail", "Could not log in!", "ok");
- }
- catch (Exception ex)
- {
- var dialog = new Windows.UI.Popups.MessageDialog(ex.Message, "Error");
- await dialog.ShowAsync();
- }
- }
- }
- public async Task AlertWithMessages(string title, string msg, string confirm)
- {
- ContentDialog dialog = new ContentDialog()
- {
- Title = title,
- Content = msg,
- PrimaryButtonText = confirm
- };
- await ContentDialogMaker.CreateContentDialogAsync(dialog, true);
- }
- public async Task<bool> CanLogin()
- {
- await Task.Delay(1000);
- return false;
- }
- }
- }
- using System;
- using System.Threading.Tasks;
- using Windows.UI.Xaml.Controls;
- namespace DuckTracker
- {
- public static class ContentDialogMaker
- {
- public static async void CreateContentDialog(ContentDialog Dialog, bool awaitPreviousDialog) { await CreateDialog(Dialog, awaitPreviousDialog); }
- public static async Task CreateContentDialogAsync(ContentDialog Dialog, bool awaitPreviousDialog) { await CreateDialog(Dialog, awaitPreviousDialog); }
- static async Task CreateDialog(ContentDialog Dialog, bool awaitPreviousDialog)
- {
- if (ActiveDialog != null)
- {
- if (awaitPreviousDialog)
- {
- await DialogAwaiter.Task;
- DialogAwaiter = new TaskCompletionSource<bool>();
- }
- else ActiveDialog.Hide();
- }
- ActiveDialog = Dialog;
- ActiveDialog.Closed += ActiveDialog_Closed;
- await ActiveDialog.ShowAsync();
- ActiveDialog.Closed -= ActiveDialog_Closed;
- }
- public static ContentDialog ActiveDialog;
- static TaskCompletionSource<bool> DialogAwaiter = new TaskCompletionSource<bool>();
- private static void ActiveDialog_Closed(ContentDialog sender, ContentDialogClosedEventArgs args) { DialogAwaiter.SetResult(true); }
- }
- }
- private async void Button_Click(object sender, RoutedEventArgs e)
- {
- if (DoingStuff == false)
- {
- DoingStuff = true;
- bool canLogin = await CanLogin();
- if (canLogin == false)
- {
- try
- {
- await AlertWithMessages("Fail", "Could not log in!", "ok");
- }
- catch (Exception ex)
- {
- var dialog = new Windows.UI.Popups.MessageDialog(ex.Message, "Error");
- await dialog.ShowAsync();
- }
- }
- DoingStuff = false;
- }
- }
Add Comment
Please, Sign In to add comment