J'ai une représentation de chaîne d'une grille XAML comme ceci:Création d'une grille de chaîne à l'aide XamlReader
<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Canvas Background="Yellow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Label Content="textik" />
</Canvas>
</Grid>
Ce que je dois faire est de créer un objet de la grille de cette chaîne. J'ai essayé beaucoup d'approches, mais jusqu'à présent le plus proche est le code ci-dessous:
string content = "<Grid xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"><Canvas Background=\"Yellow\" xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"><Label Content=\"textik\" /></Canvas></Grid>";
// the string is created programatically, I just put it here to see what it looks like at the end of the process
Stream stream = new MemoryStream(System.Text.ASCIIEncoding.ASCII.GetBytes(content));
object objGrid = XamlReader.Load(stream);
Grid myGrid = (Grid) objGrid;
Cependant, la XamlParsedException disant que l'se produit élément racine est manquant.
Est-ce que j'ai une erreur dans un code XAML que je ne peux pas voir? Ou l'approche est-elle mauvaise?
Merci pour une réponse
Il s'est avéré que le problème était vraiment pas au code que j'ai posté. Des sollutions précédentes, je lisais le flux pour voir ce qu'il y avait à l'intérieur et la méthode ReadToEnd() déplaçait le début du flux jusqu'à la fin, donc le XamlReader.Read() n'obtenait pas le contenu complet ... – Gal
string content = "
Gal