Silverlight的(WP7)加载资源(Silverlight (WP7) loading a

2019-09-29 09:56发布

我有下面的代码。 这不是找到我的资源:

    string filename = "Resources/Functions.plist";
    Uri fileUri = new Uri(filename, UriKind.Relative);
    StreamResourceInfo sr = Application.GetResourceStream(fileUri);

但上述执行后,SR为空。 不好。

我有一个在一个名为“资源”目录,这是我的项目目录的子目录名为“Functions.plist”文件。 当我右键单击它在Solution Explorer中,我看到它的建设行动“资源”,其拷贝到输出目录“复制,如果新”。

下面是加载它,或者至少我认为它做的.csproj文件的一部分:

<ItemGroup>
   // AppManifest and WMAppManifest here
<Resource Include="Resources\**">
   <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Resource>

可能是什么问题?

Answer 1:

我最常做的是在设计加载的随机图像,然后我从XAML代码复制自动生成的路径,并把它作为我自己.CS代码的模板。

当然,如果它不是一个形象,我使用路径其他对象的模板。

它也可能帮助,如果你选择“始终复制”选项。



Answer 2:

对于资源你URI格式稍有不同的内容,你将需要是一样的东西:

string filename = "/{yourAssemblyShortName};component/resources/functions.plist";

第一部分讲述了系统查找的资源,其装配。如果你不知道assmebly名字,你应该能够找到它在项目属性屏幕。



Answer 3:

原来是我必须做的是使用以下方法来包括在项目中的文件:

<ItemGroup>
  <None Include="Properties\AppManifest.xml">
    <SubType>Designer</SubType>
  </None>
  <None Include="Properties\foo.plist" />
  <None Include="Properties\WMAppManifest.xml">
    <SubType>Designer</SubType>
  </None>
  <Content Include="Resources\Functions.plist">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </Content>
  <Content Include="Resources\Help List.plist">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </Content>
            // and similarly for the other resource files
</ItemGroup>

我不知道,但关键可能已经改变“资源”到“内容”。



Answer 4:

我认为你可以得到这样的resouces。

string filename = "Resources\\Functions.plist";
Uri fileUri = new Uri(filename, UriKind.Relative);
StreamResourceInfo sr = Application.GetResourceStream(fileUri);

由于WP7的文件分隔符是斜杠,而不是反斜杠。

我希望这可以帮助。



文章来源: Silverlight (WP7) loading a resource