XamlReader抛出未声明的前缀错误

时间:2013-08-10 21:21:50

标签: c# silverlight

我定义了一个资源如下:

<DataTemplate xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
            <Grid x:Name="grdArticle" Height="190" Width="190" toolkit:TiltEffect.IsTiltEnabled="True">
                <Grid.RowDefinitions>
                    <RowDefinition Height="*" />
                    <RowDefinition Height="Auto" />
                </Grid.RowDefinitions>

                <Image Source="samplePhoto.jpg" Grid.Row="0" Stretch="UniformToFill"/>
                <Grid Grid.Row="0" Height="55" VerticalAlignment="Bottom">
                    <Rectangle Grid.Row="0" Fill="{StaticResource PhoneAccentBrush}"/>
                    <TextBlock Grid.Row="0" Text="{Binding Title}" Canvas.ZIndex="2" VerticalAlignment="Bottom" TextWrapping="Wrap" Margin="5,5,5,5" Height="50" FontStyle="Normal">
                        <TextBlock.Foreground>
                            <SolidColorBrush Color="#BFFFFFFF"/>
                        </TextBlock.Foreground>
                    </TextBlock>
                </Grid>
            </Grid>
        </DataTemplate>

当我尝试使用以下方法解析它时:

DataTemplate dtTmplt = XamlReader.Load(PhoneApp5.Resource1.Datatemplate_lst) as DataTemplate;

我收到了XamlParseException,在第2行第104位说“未声明的前缀”。 我从互联网上尝试了很多xmlns标签,但似乎什么都没有用。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

这是未声明的toolkit前缀。你需要添加

xmlns:toolkit="..."

指向<DataTemplate>或外部<Grid>元素。将...替换为您绑定xmlns:toolkit的任何内容到应用程序的其他位置。

顺便说一句,您是否有理由以这种方式将资源内容解析为XAML?通常情况下,我会在DataTemplate资源字典的某处或Resources中添加Application.Resources。这样,编译器会检查它是否是有效的XAML。