Silverlight (WP7) загрузка ресурса - PullRequest
1 голос
/ 02 мая 2011

У меня есть следующий код. Мой ресурс не найден:

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

Но после выполнения вышесказанного sr равно нулю. Не хорошо.

У меня есть файл с именем «Functions.plist» в каталоге с именем «Resources», который является подкаталогом моего каталога проекта. Когда я щелкаю его правой кнопкой мыши в обозревателе решений, я вижу его действие сборки как «Ресурс», а его копию в выходной каталог - «копировать, если новее».

Вот часть файла .csproj, который его загружает, или, по крайней мере, я так думаю:

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

Что может быть не так?

Ответы [ 4 ]

0 голосов
/ 02 ноября 2012

Я думаю, вы можете получить такие ресурсы.

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

Поскольку файловый разделитель WP7 является косой чертой, а не обратной косой чертой.

Надеюсь, это может помочь.

0 голосов
/ 02 мая 2011

Что касается ресурсов, формат uri которых немного отличается от содержимого, то вам потребуется что-то вроде:

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

Первая часть сообщает системе, в какой сборке искать ресурс.Не знаю, насколько понятно имя, которое вы сможете найти на экране свойств проекта.

0 голосов
/ 02 мая 2011

Оказалось, что мне нужно было использовать следующее для включения файлов в проект:

<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>

Я не уверен, но ключ, возможно, менял "Ресурс" на "Контент».

0 голосов
/ 02 мая 2011

Обычно я загружаю случайное изображение в конструкторе, а затем копирую автоматически сгенерированный путь из кода XAML и использую его в качестве шаблона для своего собственного кода .CS.

Конечно, если это не изображение, я использую путь в качестве шаблона для других объектов.

Может также помочь, если вы выберете опцию «Всегда копировать».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...