Иерархия существует по причине, вероятно, хорошей идеей будет начать с простого и локально для элемента, с которым вы работаете , а затем переместить его по мере необходимости.
У ваших дизайнеров также могут быть особые требования, которые могут превзойти это. Например, команда, отправляющая много ревизий по некоторым стилям, может захотеть поместить всю работу над стилем в один файл XAML, пока не будет готова к большему.
Типичная иерархия стилей в обратном порядке
Первые несколько элементов - это ваши «наиболее выпеченные» и наиболее часто используемые стили, обычно вам нужно начинать с нижней части и продвигаться вверх. Приятно, что вам не нужно работать с несколькими файлами XAML и хранить их в хранилище.
Уровень приложения (App.xaml)
Стили уровня приложения будут полезны везде, где у вашего приложения есть интерфейс для общих элементов.
Если вы используете Silverlight 2, это ваш лучший нехакерный способ сделать ваши стили доступными во всем приложении.
Будьте осторожны при регулярном использовании ресурсов App.xaml, поскольку библиотека модульных тестов, которая находится за пределами вашего приложения, будет гораздо сложнее тестировать, поскольку в некоторых ситуациях она не подберет стили уровня приложения.
Объединенный словарь
Слитные словари ресурсов позволяют вам разделять ваши стили на дополнительные файлы XAML, упрощая их разбор по областям функций, функциям, типу элемента управления, имени группы и т. Д. Подробнее об этой функции .
Подумайте об использовании этого для стилей на уровне приложения в ситуациях, когда это имеет смысл, поскольку вы можете использовать их в отдельных проектах и решениях.
Недоступно для Silverlight 2, эта функция была добавлена в Silverlight 3.
Страница уровня
Хорошим кандидатом для этого может быть что-то конкретное для отдельной страницы (может быть целое приложение, визуальная страница или часть приложения), которое не выходит за границы.
Не стесняйтесь начинать дальше вниз по визуальному дереву (например, уровню управления) и перемещать эти стили вверх, как это имеет смысл.
На панели
Хорошо содержать кучу похожих фрагментов, как при форматировании формы.
На пульте управления
Начните здесь. Когда вы стилизуете элемент управления в Blend, он обычно начинается здесь, если вы не выберете опцию ресурса приложения.
Это промежуточный шаг между установкой свойства и фактически фактическим ресурсом стиля, так как это будет просто установщик свойства Style элемента управления - но вы можете легко добавить x: Key и переместить его вверх в визуальное дерево, когда вы будете готовы.
Неявные стили и темы
Если ваша команда или компания использует обычный набор стилей для всех элементов управления определенного типа (кнопки, флажки, назовите его), рассмотрите возможность использования функции Implicit Style Manager (добавление значения для Silverlight) для создания неявных стилей , Это похоже на историю стилей WPF, где вам не нужно устанавливать стиль во всех местах, где вы его используете.
Я нашел хороший онлайн-учебник с быстрым поиском для вас, чтобы узнать больше о ISM .
Когда использовать свойства вместо общих, общих стилей
W.R.T. Ваш вопрос: если у вас есть набор текстовых полей, в которых различия составляют MaxLength, Width и т. д., вам, вероятно, следует явно указать их как свойства для каждого экземпляра элемента управления - если они различны.
Если у вас есть несколько (скажем, 3) элементов, использующих одинаковые значения, возможно, имеет смысл вытащить его, а затем начать использовать атрибут Style = "{StaticResource keyName }". Если вы набираете XAML вручную, это намного раздражает, чем ввод Width = "20".