Hallo,
ich habe eine kleine Frage zum laden von XAML in einen "Bereich". Grundlage dessen ist der Artikel
von Norbert Eder ( http://dotnet-gui.com/forums/t/36.aspx ).
Nun habe ich mit einigen Dockpanels (geht bestimmt auch eleganter) mir Bereiche geschaffen und möchte diese
mit entsprechenden XAML füllen. Aussehen tut das wie folgt:

<Window x:Class="LoadXAML.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<DockPanel Name="DPanel5">
<StackPanel Name="Area5" DockPanel.Dock="Bottom" Background="Blue">
<Label>Bereich5</Label>
</StackPanel>
<DockPanel Name="DPanel1">
<StackPanel Name="Area1" DockPanel.Dock="Left" Background="AntiqueWhite">
<Label>Bereich1</Label>
</StackPanel>
<DockPanel Name="DPanel2">
<StackPanel Name="Area2" DockPanel.Dock="Right" Background="Beige">
<Label>Bereich2</Label>
</StackPanel>
<DockPanel Name="DPanel3">
<StackPanel Name="Area4" DockPanel.Dock="Bottom" Background="Chocolate">
<Label>Bereich4</Label>
</StackPanel>
<StackPanel Name="Area3" DockPanel.Dock="Top" Background="BlanchedAlmond">
<Label>Bereich3</Label>
</StackPanel>
</DockPanel>
</DockPanel>
</DockPanel>
</DockPanel>
</Window>
Die Frage ist nur, wie fülle ich so einen Bereich? Ich habe das Gefühl das es nicht so einfach wie im
Artikel wird da ich keine Content Eigenschaft für ein Stackpanel o.ä. finde.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| public void LoadXAMLMethod() { // Delegate erstellen FPointer fp; // Klasse welche die Logik enthält instanzieren Klasse kl = new Klasse(); // Dem Delegate die Funktion mit der Logik zuweisen fp = new FPointer(kl.MSG);
try { // XAML Datei laden StreamReader sReader = new StreamReader("C:\\3S\\WPFPages\\Maske.xaml"); DependencyObject doRoot = XamlReader.Load(sReader.BaseStream) as DependencyObject; // Ergeignisse hinzufügen _remoteButton = LogicalTreeHelper.FindLogicalNode(doRoot, "btKnopf") as Button; // Als Ergeignisshandler den Delegate angeben _remoteButton.Click += new RoutedEventHandler(fp); //Maske übernehmen / erstellen this.Content = doRoot; } catch (Exception ex) { // Bei Fehler "Datei nicht vorhanden" Error Message werfen MessageBox.Show(ex.Message.ToString(),"Fehler"); } } |
Nun meine Frage, wie weise ich das Objekt doRoot einem Bereich zu?
Ist das nicht möglich oder ist dieses Ziel nur auf Umwegen zu erreichen?
Danke schon im voraus :-)