Ich weiß nicht, welche Daten es sein wird ... Ich bekomme XAML von Socket (Beispiel):
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="180.036*" />
<RowDefinition Height="81.964*" />
</Grid.RowDefinitions>
<Button Margin="0,5.282,0,0" Name="button1" HorizontalAlignment="Left" Grid.Row="1" Width="109.633" Click="button1_Click">Button</Button>
<TextBox Grid.Row="0" HorizontalAlignment="Right" Margin="0,13.336,0,0" Name="textBox1" Width="123.358" Height="68.628" VerticalAlignment="Top" />
</Grid>
Wie ändere ich den Inhalt des aktuellen Rasters in den Inhalt, den ich während des Laufs erhalte?
Antworten:
0 für die Antwort № 1Sie können den XamlReader verwenden, um das Xaml zu analysieren, das Sie erhalten:
UIElement root = XamlReader.Parse(xaml) as UIElement;
myGrid.Children.Clear();
if(root != null)
myGrid.Children.Add(root);
Das Xaml muss jedoch einige Bedingungen erfüllen. Alle Namespaces müssen im Wurzelknoten des XAML enthalten sein. Beispiel:
<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Grid.RowDefinitions>
....
Außerdem darf es keine Referenzen in derXAML, das nicht gelöst werden kann. Z.B. In dem von Ihnen bereitgestellten XAML gibt es einen Verweis auf einen Click-Ereignishandler, der nicht aufgelöst werden kann. Sie können den Klick-Handler nach dem Parsen des Codes hinzufügen.