资源字典xaml文件如下所示:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="Celerior.Annapurna.SL.ProvisiorResourceDictionary" x:ClassModifIEr="public"> ...</ResourceDictionary>
如果我删除x:Class属性一切正常(当然,我仔细检查了类名,它是正确的).我的App.xaml文件并不令人兴奋,只包含对资源字典的引用:
<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="Celerior.Annapurna.SL.App"> <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionarIEs> <ResourceDictionary Source="ProvisiorResourceDictionary.xaml"/> </ResourceDictionary.MergedDictionarIEs> </ResourceDictionary> </Application.Resources></Application>
我究竟做错了什么?
亲切的问候,
罗纳德威尔登伯格
解决方法 Silverlight不支持仅在WPF中支持的x:ClassModifIEr.另外x:Class在资源字典中无效.当然,当尝试将资源字典中的Xaml作为合并字典包含时,Silverlight将不知道该如何处理x:Class.
实际上上面并不严格正确x:类是有效的,但是你在应用程序字典中包含字典的方式需要调整.让我首先说明这里有一个假设,你实际上需要子类ResourceDictionary(如果不只是删除x:Class).
基于你包含的x:ClassModifIEr你实际上在你的项目中没有ProvisiorResourceDictionary.xaml.cs文件,我也会想出去.由于SL总是创建公共部分,因此您需要至少包含此文件: –
public partial class ProvisiorResourceDictionary{ public ProvisiorResourceDictionary() { InitializeComponent(); }}
那说如果没有这样的东西那么你也可以完全放弃x:Class.
现在您的app.xaml需要如下所示: –
<Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionarIEs> <common:ProvisiorResourceDictionary /> </ResourceDictionary.MergedDictionarIEs> </ResourceDictionary></Application.Resources>
您现在不需要尝试通过Source属性将XAML文件作为资源导入,而是包含专用ResourceDictionary的实例.
@H_301_58@ 总结以上是内存溢出为你收集整理的为Silverlight资源字典添加代码时出错:AG_E_PARSER_BAD_TYPE全部内容,希望文章能够帮你解决为Silverlight资源字典添加代码时出错:AG_E_PARSER_BAD_TYPE所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)