0

我正在尝试在运行时加载 xaml 文件。我的代码如下所示:

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

它基本上是msdn的复制粘贴。XamlReader.Load 行引发 XamlParseException,内部异常为“Stack Empty at line...”。
它指向的行是在 xaml 字符串中找到的用户控件的结束标记,即字符串的最后一行。

Xaml基本结构如下

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

谷歌搜索没有任何结果。非常感谢您在寻找解决方案方面的任何帮助。

4

1 回答 1

0

我刚开始从我的 xaml 中切块,直到错误消失。我能够将其缩小到在我的用户控件声明中找到的这一行

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

不完全确定为什么会引发 Stack Empty 异常,但确实如此。

这是整个标题,罪魁祸首是粗体

<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">
于 2009-04-24T20:42:09.560 回答