Laden...

Dynamisches XAML Fenster korrekt laden

Erstellt von IgG vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.096 Views
I
IgG Themenstarter:in
111 Beiträge seit 2006
vor 16 Jahren
Dynamisches XAML Fenster korrekt laden

Ich arbeite (leider) mit Visual Studio Express und die Unterstützung für XAML ist noch nicht so rosig.

Gewünscht ist: Die komplette GUI wird über eine externe XAML-Datei bestimmt, die nach belieben modifiziert werden kann.

Bisher habe ich folgendes gemacht (ist nur ein Prototyp, noch keine schönen vars usw.):

  • Alle .xaml und .cs (app1.xaml, window1.xaml) gelöscht
  • Eine neue Klasse ("MainWindow") erstellt, dort folgende Methode erstellt:

[STAThread]
public static void Main()
{
	Window mainWindow = null;
	using (FileStream fs = new FileStream("Ressource/XMLFile1.xaml", FileMode.Open, FileAccess.Read))
	{
		mainWindow = (Window)XamlReader.Load(fs);
	}
	mainWindow.ShowDialog();
}

  • Darf man das so machen oder gibt es da bessere Vorgehensweisen? Wenn ich mainWindow.Show() verwendet verschwindet es leider sofort wieder.
186 Beiträge seit 2007
vor 16 Jahren

Hallo,

versuche es damit einmal:


Window myWindow = (Window) XamlReader.Load(fs)
fs.Close();
this.Content= myWindow;

Grüße
nordside

Edit: Bei der Lösung fügst Du einer bestehenden XAML-Datei den Inhalt aus der externen Datei hinzu.

6.862 Beiträge seit 2003
vor 16 Jahren

Original von IgG
Wenn ich mainWindow.Show() verwendet verschwindet es leider sofort wieder.

Das Problem ist hier das gleiche wie schon unter Windows Forms. Du hast keine Nachrichtenschleife die läuft. Du musst erst nen Application Objekt erstellen und dann kannst du darüber dein Window öffnen in der Art wie du es schon gemacht hast.

Baka wa shinanakya naoranai.

Mein XING Profil.