Я не уверен, что вы пытаетесь сделать, как ваш вопрос был довольно расплывчатым, но я могу пролить некоторый свет на то, каким образом ресурсы можно управлять на Silverlight платформе.
Ресурсы Silverlight могут быть встроены в любой XAML, так как все визуальные элементы имеют ResourceDictionary, доступный через свойство Resources.
<Grid>
<Grid.Resources>
<DataTemplate x:Key="MyTemplate">
</DataTemplate>
</Grid.Resources>
</Grid>
Однако рекомендуется использовать специальные файлы XAML, называемые «Словари ресурсов».
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<DataTemplate x:Key="MyTemplate">
</DataTemplate>
</ResourceDictionary>
Silverlight 3 обеспечивает возможность автоматического слияния этих ресурсных словарей в словарь основных ресурсов приложения.
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/A.xaml"/>
<ResourceDictionary Source="Resources/B.xaml"/>
<ResourceDictionary Source="Resources/C.xaml"/>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary>
<Application.Resources>
Для того, чтобы объединить словарь ресурсов с ресурсами вашего приложения, словари ресурсов, должны находиться в пределах сжатого пакета XAP, который используется для развертывания Silverlight приложений вниз к клиенту.
Однако, если бы вы захотели, вы могли бы хранить веточки ресурсов XAML на веб-сервере и переносить их в приложение Silverlight с помощью WebClient для загрузки файла, а затем с помощью XamlReader для создания объектной модели в памяти из XAML строка, которую вы извлекаете из файла.
Ресурсные словари по своей сути строго типизированы, но не тип-сейф. В этом случае вы не получите ошибку времени компиляции, если в XAML есть неправильно введенный элемент. Если в одном из ваших ресурсов произошла ошибка, вы узнаете, только когда ссылка на нее инициализируется, и механизм рендеринга пытается создать экземпляр вашего ресурса.
Так короче:
- Да.
- Да.
- Да.
- No.
Спасибо. Каков тип ресурса, который может содержаться в файле Словари ресурсов. Я думаю, что это только таблица стилей или относительный uri. Эта идея нравится использовать простой файл ресурсов (*. Resx). –
Любой тип может быть сохранен в XAML. Некоторые из них легче других представлять в XAML, чем другие. Если вы хотите встраивать двоичные файлы, вы просто добавляете их в проект и отмечаете их как ресурсы, чтобы их компилировать в сборку. – markti