Lanzando una ventana WPF desde una aplicación de consola
Estoy tratando de usar una ventana WPF como un mensaje emergente que se cerrará una vez que se haya realizado una tarea. Toda la documentación que he visto dice que esto no se puede hacer con un MessageBox, por eso estoy usando WPF. Encontré un código que me permitió abrir la ventana WPF pero no avanzaría la aplicación al siguiente proceso. A continuación se muestra el último ejemplo de código que encontré que pensé que mostraba promesa pero la ventana no se está abriendo:
[STAThread]
static void Main(string[] args)
{
try
{
string filePath = "mi nuevo directorio";
var popup = new PopupTest();
popup.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, (Action)(() =>
{
popup.Show();
}));
// Hacer algunas cosas de la aplicación de consola
do
{
Directory.CreateDirectory(filePath);
} while (!Directory.Exists(filePath));
popup.Close();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
}
}
El archivo cs.xaml es simplemente el predeterminado:
/// <summary>
/// Lógica de interacción para PopupTest.xaml
/// </summary>
public partial class PopupTest : Window
{
public PopupTest()
{
InitializeComponent();
}
}
Siento que esto debería ser más simple de lo que estoy haciendo. Cualquier cosa que pueda indicarme en la dirección correcta es apreciada.
davy.ai
Parece que la ventana WPF no se está abriendo porque la aplicación de consola no está esperando a que se muestre antes de continuar con la siguiente tarea. Puedes intentar usar el método
ShowDialog()
en lugar deShow()
para hacer que la ventana WPF sea modal y bloquear la aplicación de consola hasta que se cierre.Esto debería mostrar la ventana WPF y bloquear la aplicación de consola hasta que el usuario cierre la ventana. Una vez que la ventana se cierre, la aplicación de consola continuará con la siguiente tarea, que en este caso es crear el directorio y comprobar si existe.
¡Espero que esto te ayude!