В XAML какие «рекомендации» мне следует использовать при принятии решения о том, должно ли свойство соответствовать стилю? - PullRequest
2 голосов
/ 30 августа 2010

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

Ответы [ 2 ]

3 голосов
/ 30 августа 2010

Я думаю, что в основном все сводится к повторному использованию стилей и общей организации проекта.

Если это стиль, вы собираетесь повторно использовать множество различных элементов в элементе управления (например, кисти) или даже во многихразличные элементы управления в вашем проекте, очевидно, вы захотите использовать его в своем собственном ресурсе.Для лучшей организации вы, вероятно, даже захотите поместить эти общие стили в их собственный файл словаря ресурсов и использовать MergedDictionaries , чтобы использовать их для различных элементов управления.На самом деле вы можете создавать довольно полезные каскадные эффекты между различными стилями, используя также атрибут BasedOn.

Когда дело доходит до «одноразовой» функции определенного элемента, я думаю, что хорошо сохранять стильатрибуты непосредственно на элементе.Если его не нужно использовать совместно, а стиль уникален для одного элемента (определенного элемента Border, Margin и т. Д.), Гораздо проще и удобнее читать его непосредственно на элементе.

1 голос
/ 30 августа 2010

Очень хороший вопрос. Есть две ситуации, когда я перемещаю свойство в стиль.

1) Переполненные свойства - Переполненные свойства - не что иное, как слишком много свойств для настройки элемента. Скажем например. Если у вас есть текстовый блок и вы хотите настроить почти все свойства. Тогда это снизит читабельность. Это тоже, если есть что-то вроде триггеров. Это будет слишком многолюдно. К тому времени я использовал их в стиле.

2) Повторно используемые стили - это очевидный случай, если я хочу применить тот же набор свойств, который будет применен к элементу управления. Обычно мы делаем это x:key или TargetType.

НТН

...