using System; using System.Threading.Tasks; using Avalonia.Controls; using Avalonia.Markup.Xaml; namespace Logof_Client; public partial class NamingWindow : Window { public NamingWindow() { AvaloniaXamlLoader.Load(this); //InitializeComponent(); } public static Task Show(Window parent, string input = "", string info = "Bitte geben Sie einen Namen ein:") { try { var wind = new NamingWindow { Title = "Name eingeben" }; wind.FindControl("Text").Text = info; var buttonPanel = wind.FindControl("Buttons"); var inputBox = wind.FindControl("Input"); inputBox.Text = input; string res = null; void AddButton(string caption) { var btn = new Button { Content = caption }; btn.Click += (_, __) => { res = inputBox.Text; wind.Close(); }; buttonPanel.Children.Add(btn); } AddButton("Ok"); var tcs = new TaskCompletionSource(); wind.Closed += delegate { tcs.TrySetResult(res); }; if (parent != null) wind.ShowDialog(parent); else wind.Show(); return tcs.Task; } catch (Exception ex) { Console.WriteLine("Error while showing naming window: " + ex.Message); return null; } } }