В Expression Blend вы можете создать размер шрифта, скажем, 18, а затем создать "ресурс размера шрифта".
Исходя из HTML / CSS, я не могу придумать, когда я захочу создать стиль для "font-size", один для "font-style" и один для "font-weight". Вместо этого я хочу создать шрифт под названием "CompanyHeader" и установить в нем 10 различных атрибутов, например font-weight, font-style, font-size, цвет и т. д.
Почему это отличается в Expression Blend, XAML, в чем смысл создания стиля / ресурса для каждого атрибута?
На этом рисунке показано, как можно щелкнуть маленькую кнопку на каждом атрибуте, чтобы преобразовать его в ресурс: http://tanguay.info/web/external/blendStyles.png
У меня нет опыта работы с Blend, но стили в XAML могут включать более одного атрибута, более того, поскольку в отличие от css вы можете применить только один стиль к элементу, вы не можете комбинировать несколько стилей с одним атрибутом.
Вот пример стиля, который устанавливает несколько свойств:
Обратите внимание: если бы я хотел разбить стиль на 3 меньших стиля, каждый из которых устанавливал бы одно свойство, я бы не смог их использовать, потому что свойство "Стиль метки" может принимать только один стиль.
Ответ 2 · рейтинг 4 · Richard McGuire
Я думаю, что они, вероятно, позволяют создавать отдельные ресурсы для FontFamily, FontWeight и т. Д., Чтобы их можно было использовать во многих стилях в приложении. Поместив одно свойство в ресурс, вы можете воздействовать на все стили, используя этот ресурс одновременно. Если вы не использовали ресурс, но пытались использовать согласованное FontFamily во всем приложении (или его части), вам нужно было пройтись по каждому стилю по одному, чтобы обновить его.
Чтобы создать стиль с несколькими свойствами в смеси, вы можете сделать следующее:
Выберите элемент управления, который вы хотите стилизовать (тип элемента управления будет использоваться как TargetType для стиля)
В меню выберите Object-> Edit Style-> Create Empty.
Введите ключ, который вы хотите назначить стилю (это имя, которое вы будете использовать для ссылки на стиль)
Перейдите на вкладку свойств и начните применять внешний вид, который вы хотите для этого стиля.
Ответ 3 · рейтинг 3 · Phil Wright
Это позволяет повторно использовать детали шрифта на более детальном уровне, чем необходимость определения всех элементов определения шрифта. У вас может быть несколько стилей, которые наследуются от одного и того же определения размера шрифта. Затем ваш дизайнер может изменить размер шрифта и все стили, которые его используют, после чего автоматически обновится внешний вид.
Ответ 4 · рейтинг 1 · vplusplus
Каждый экземпляр шрифта будет использовать свои собственные ресурсы, не имеет значения, относятся ли несколько таких определений к одному и тому же шрифту.
Использование одного и того же шрифта в двух разных стилях приведет к получению двух экземпляров шрифта (при применении стилей). Instade вы можете определить шрифт как собственный стиль и использовать его вместе с другими стилями. В этом случае один раз экземпляр ресурса шрифта во время выполнения используется обоими стилями.
Если у вас очень сложные словари ресурсов (например, вы создаете тему), рекомендуется определить геанулярные ресурсы (например, конкретную цветную кисть или шрифт) как независимый ресурс (или именованный стиль) и использовать их в других сложных стили для экономии системных ресурсов.
Отвечая на ваш вопрос о Blend, он просто применяет эту передовую практику.
Ответ 5 · Shahar Prish
Это возможно путем создания вспомогательного класса для использования и обертывания ваших стилей. CompoundStyle упоминается здесь показывает, как это сделать. Есть несколько способов, но самый простой из них: