2009-04-24 69 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">