2016-01-20 2 views
1

Я собираюсь создать несколько проектов с помощью WPF. Я использую стили, чтобы изменить внешний вид приложений и поместить их в app.xaml.Совместное приложение.xaml между несколькими решениями

Но теперь у меня есть проблема, что мне нужно иметь одинаковые стили в каждом проекте. Потому что копирование и вставка содержимого app.xaml для каждого проекта - очень плохая идея. Я ищу решение для централизации app.xaml для доступа к стилям из каждого проекта.

+0

Возможный дубликат: [Скопировать файл (ы) из одного проекта в другой с помощью события пост-сборки] (http://stackoverflow.com/questions/11001822/copy-files-from-one-project-to-another-using -post-build-event-vs2010) –

+0

Нет, я не хочу использовать события пост-сборки и копировать файлы вокруг проектов. Наличие центрального проекта, на который можно ссылаться, будет намного лучше. Также решение должно состоять в том, чтобы иметь внешний файл, в который я помещал все необходимые декларации, используемые для приложений. – SyLuS

ответ

2

Вы можете создать общий файл стилей в одном из своих проектов. Например, это может быть файл GenericStyles.xml, содержащий ваши стили и ресурсы.

В других проектах, можно добавить этот файл в качестве ссылки: щелкните правой кнопкой мыши на проекте -> Добавить -> Existing Item ... -> выберите GenericStyles.xml файл -> открыть выпадающее меню на Добавить кнопка -> выберите Добавить как ссылку.

Итак, теперь у вас есть один файл, который будет частью всех ваших проектов.

В app.xaml каждого проекта, вы можете добавить свои стили и ресурсы, используя эту разметку:

<ResourceDictionary> 
    <ResourceDictionary.MergedDictionaries> 
    <ResourceDictionary Source="GenericStyles.xml"/> 
    </ResourceDictionary.MergedDictionaries> 
</ResourceDictionary> 

Теперь, вы должны изменить только один файл в «основной» проект, и другие проекты автоматически применяют эти изменения.

+1

Отлично. Спасибо за очень приятное Пошаговое руководство. Это именно то, что я искал. Легкий способ обработки центрального файла ресурсов, совместно используемого серверными решениями/проектами. Я бы посоветовал вам ответ ... но все равно не имеет ресуссии для него = ( – SyLuS

+0

Но ресурс не связан во время разработки, поэтому im получает ошибки в disigner, потому что im ссылается на стиль с использованием BasedOn = "{StaticResource myButtonStyle}" чтобы расширить стиль с помощью триггеров.Ссылки цветов могут быть DynamicResource, но BasedOn dosent разрешают DynamicResources. Запуск приложения отлично работает. – SyLuS

+0

@SyLuS, да, это может быть так. Я не проверял все возможные способы использования ресурсов. Дизайнер XAML довольно нестабилен и иногда терпит неудачу по странным причинам. Для этого вы можете открыть проблему на сайте поддержки Visual Studio. – dymanoid

Смежные вопросы