2009-04-24 66 views
0

我试图在运行时加载xaml文件。我的代码如下所示:XamlReader.Load(XmlReader)“Stack Empty”XamlParseException

StringReader stringReader = new StringReader(xamlString);   
      XmlReader xmlReader = XmlReader.Create(stringReader); 
      content = XamlReader.Load(xmlReader); 

它基本上是复制msdn的粘贴。 XamlReader.Load行会抛出一个XamlParseException,其内部异常为“堆栈在行....”。
它指向的行是在xaml字符串(字符串的最后一行)中找到的用户控件的结束标记。

基本的Xaml结构如下

<UserControl> 
    <UserControl.Resources> 
    </UserControl.Resources> 
    <Grid> 
    </Grid> 
</UserControl> 

谷歌搜索并没有把任何东西。任何帮助找到解决方案,非常感谢。

+0

罪魁祸首整个头,你使用WPF? – TStamper 2009-04-24 20:03:09

回答

0

我刚从xaml开始切块,直到错误消失。我能缩小它这条线在我的用户控件声明

<UserControl 
... 
WPFManagement:ObjectReference.Declaration="{WPFManagement:ObjectReference thisPointer}" 
...> 

也不清楚为什么会抛出一个栈空异常发现,但它确实。

这里是用粗体

<UserControl 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:WPFManagement="clr-namespace:A;assembly=A" 
     xmlns:WPFControls="clr-namespace:B;assembly=B" 
     xmlns:ModuleUI="clr-namespace:C;assembly=C" 
     xmlns:GeneralUI="clr-namespace:D;assembly=D" 
     **WPFManagement:ObjectReference.Declaration="{WPFManagement:ObjectReference thisPointer}"** 
     mc:Ignorable="d" 
     WPFControls:UIExtension.Caption="Filler" 
     WPFControls:UIExtension.Icon="Icon" 
     d:DesignWidth="910" 
     d:DesignHeight="730">