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 に答える