C# WPF: Neues Form zu einer kompilierten App hinzufügen?
Hallo an alle.
Ich hätte gerne ein Programm geschrieben, welche zwar die Grundfunktionen erfüllt, aber man mit WPF Forms erweiterbar sein soll.
Das ganze soll ein Benutzer machen können, ohne die App neu zu kompilieren. Also quasi eine Datei in den Ordner schieben, und dann wird das neue Windows Form in die App eingebunden.
Gibt es da Möglichkeiten?
LG
Was bringt das Einbringen eines neuen Fensters? Inwiefern verknüpft es sich mit der bestehenden Anwendung / Programmlogik?
Es soll eine Anwendung werden, bei der ein Benutzer Livedaten einspielen kann und auch live visualisieren. Neue Fenster sollen dem Benutzer eigene Visualisierungsarten ermöglichen.
1 Antwort
Das Einbinden selbst würde ich über ein Event (z.B. einen Buttonklick) lösen. Wenn der Nutzer auf diesen drückt, wird in einem Event Handler in einem spezifischen Ordner geschaut, welche Dateien enthalten sind.
Für das Lesen der Dateien eignet sich ein XAML-Reader/Parser. Den gelesenen Knoten könntest du anschließend in ein Grid- oder StackPanel-Element hängen. Das heißt auch, die XAML-Dateien sollten UserControls darstellen.
using (var stream = new FileStream(filename, FileMode.Open))
{
var root = (UIElement)XamlReader.Load(stream);
SomeGrid.Children.Add(root);
SomeGrid.SetColumn(root, 0);
SomeGrid.SetRow(root, 0);
}
Jegliche Bindings und Events musst du im Anschluss manuell setzen. Mit dem LogicalTreeHelper kannst du über die Baumstruktur iterieren, um die entsprechenden Elemente zu finden.