Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Silverlight:COM在C中加载资源字典时发生异常#_C#_Silverlight_Silverlight 5.0_Resourcedictionary - Fatal编程技术网

C# Silverlight:COM在C中加载资源字典时发生异常#

C# Silverlight:COM在C中加载资源字典时发生异常#,c#,silverlight,silverlight-5.0,resourcedictionary,C#,Silverlight,Silverlight 5.0,Resourcedictionary,只是偶然发现了一个我似乎无法摆脱的错误。我想和大家分享一下,看看是不是只有我,还是有人知道解决办法 背景: 我有一个场景,我为用户控件创建了一个基类(抽象并继承自UserControl)。虽然基类本身没有XAML,但我希望加载一个包含所有子类都将使用的样式的资源字典。因此,我必须加载这个资源字典,并从我的C类代码加载到合并的资源字典中 要重现问题,请执行以下操作: 使用默认设置创建新的Silverlight 5应用程序(在VS2013 SP4上测试) 在项目的根目录下创建新的资源字典。文件名并

只是偶然发现了一个我似乎无法摆脱的错误。我想和大家分享一下,看看是不是只有我,还是有人知道解决办法

背景:

我有一个场景,我为用户控件创建了一个基类(抽象并继承自
UserControl
)。虽然基类本身没有XAML,但我希望加载一个包含所有子类都将使用的样式的资源字典。因此,我必须加载这个资源字典,并从我的C类代码加载到合并的资源字典中

要重现问题,请执行以下操作:

  • 使用默认设置创建新的Silverlight 5应用程序(在VS2013 SP4上测试)
  • 在项目的根目录下创建新的资源字典。文件名并不重要
  • 转到后面的主页代码,并在构造函数末尾添加以下行:

    ResourceDictionary dic = new ResourceDictionary();
    Uri source = new Uri("Dictionary1.xaml", UriKind.Relative);
    dic.Source = source;
    
  • 运行解决方案。项目应该在上面代码片段的最后一行崩溃,抛出实际
    系统的实例。异常
    类,并显示消息“错误HRESULT E_FAIL已从对COM组件的调用返回”。堆栈跟踪和跟踪输出没有帮助

我尝试过不同的事情,比如等待
加载的
事件,不同类型的URI,但找不到任何有效的变体

好了。如果有人能给出解释,或者对从C#添加合并资源字典的不同方法有想法,我会很高兴


谢谢

您确定源对象不为空吗?