我定义了一个资源如下:
<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标签,但似乎什么都没有用。有什么帮助吗?
答案 0 :(得分:1)
这是未声明的toolkit
前缀。你需要添加
xmlns:toolkit="..."
指向<DataTemplate>
或外部<Grid>
元素。将...
替换为您绑定xmlns:toolkit
的任何内容到应用程序的其他位置。
顺便说一句,您是否有理由以这种方式将资源内容解析为XAML?通常情况下,我会在DataTemplate
资源字典的某处或Resources
中添加Application.Resources
。这样,编译器会检查它是否是有效的XAML。