Silverlight 4: Измените темы / стили для всего приложения без использования набора инструментов

StackOverflow https://stackoverflow.com/questions/3807223

Вопрос

Мы начинаем на нашем первом проекте Silverlight, исходя из WPF. Это относительно простой веб-портал, и мы хотели бы избежать ссылок на Silverlight Toolkit, учитывая наш опыт с помощью Toolkit WPF.

Я не большую часть кодера и имею пару вопросов, связанных с темами:

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

  • Как я могу применить стили во всем приложении, например, в WPF, вместо того, чтобы упаковывать вещи в тематических контейнерах? Я вижу, что есть applicateTheReuri, который вы можете использовать, но это требует инструментария.

Спасибо.

Это было полезно?

Решение

Просто записка на Siverlight Toolkit. В последний раз я использовал The WPF Toolkit (что было некоторое время назад), я получил впечатление, что это было более или менее необязательно. Я бы не сказал, что то же самое верно для инструментария Silverlight. Он добавляет большое значение важной функциональности, которая будет трудно реализовать самостоятельно, и пока он не без ошибок, это довольно надежно. Я не могу поручиться за каждый аспект этого, но мы используем его широко в большом проекте Silverlight (~ 30k строки кода), и мы находим его незаменимым. Если вы не знаете о конкретных проблемах, которые столкнутся с вашим проектом, я бы порекомендовал вам переосмыслить ваше решение не использовать его.

Другие советы

Применение стиля в целом приложение - это простая задача в Silverlight 4. Поместите этот код в App.xaml или Themes / Generic.xaml:

<!-- Sample style for each button in the application -->
<Style TargetType="Button">
</Style>

Эта статья может помочь вам:http://www.silverlightshow.net/items/implicit-styles-in-silverlight-4.aspx.  

Вы можете изменить словарь ресурсов на этот путь:

var dict = Application.Current.Resources.MergedDictionaries.FirstOrDefault(rd => rd.Source == new Uri("Dictionary1.xaml", UriKind.Relative));
if (dict != null)
     dict.Source = new Uri("Dictionary2.xaml", UriKind.Relative);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top