2010-02-12 6 views
4

je reçois une exception au cours (UIElement) XamlReader.Load (...) qui ditException lors XamlReader.Load (..)

'Cannot create unknown type 'TextBox'.' Line number '1' and line position '2'. 

sur le XAML suivant:

<TextBox Name="inputMyFirstString" BorderThickness="0" HorizontalAlignment="Stretch" Text="test"></TextBox> 

Qu'est-ce que Ai-je tort?

Répondre

4

Je pense que cela est dû à missing namespace. Essayez

<TextBox xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" ... 
+1

Cela fonctionne, mais en ajoutant l'espace de noms à chaque contrôle dans le XAML est pas une bonne idée. Mieux vaut le définir globalement. –

+0

Cela l'a réparé! Merci! – elCapitano

+0

@Winston Smith: j'ai défini l'espace de noms dans mon contrôle auquel j'ajoute la zone de texte. Où puis-je définir globalement l'espace de noms? – elCapitano

0

Ajouter l'attribut xmlns à l'élément de fenêtre dans votre XAML:

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" ... 
+0

je l'ai fait, mais cela n'a pas fonctionné – elCapitano

3

Je sais que c'est une vieille question, mais je pense que la « bonne réponse » est toujours manquant. Vous pouvez éviter de changer votre XAML en ajoutant les espaces de noms requis dans le code:

ParserContext context = new ParserContext(); 
context.XmlnsDictionary.Add("","http://schemas.microsoft.com/winfx/2006/xaml/presentation"); 
context.XmlnsDictionary.Add("x", "http://schemas.microsoft.com/winfx/2006/xaml"); 
//etc. 

object content = XamlReader.Load(stream, context); 
Questions connexes