|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
Украшаю табстрип на основе примера, найденного в интернетах. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Как видно из кода, на заголовок выбранной закладки накладывается BitmapEffect. Эта пакость обладает двумя минусами: бросает тень на саму закладку и размывает подпись. Хочу от нее избавиться, а выбранность обозначать более светлым градиентом. Стандартная заливка указана в TabItemPathBrush, и вот никак догнать не могу, как ее поменять в триггере. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 10:13 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
То ли ты невнятно объяснил, то ли я плохо соображаю. Ты хочешь менять Fill у Path? Так прикрути триггер к Path. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 11:21 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
Shocker.Pro Ты хочешь менять Fill у Path?Да. Shocker.ProТак прикрути триггер к Path.Как? У Path нет <ControlTemplate.Triggers> ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 11:37 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
я использовал для этого Shape, Shape на много удобнее тем, что я могу фигуру настроить под размеры, а не размеры под фигуру :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 13:11 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
и вообще при работе с треггерами надо чётко понимать, что триггеры можно запихнуть как в сам базовый стиль, так и в шаблон. В стиле мы меняем состояние контрола с помощью свойств контрола, а в шаблоне с помощью свойств его компонентов. И если в контроле используется базовая связка Background\Foreground или Fill\Stroke, то смысла городить такие биндинги и триггеры нет. Внутри шаблона можно просто привязать из через TemplateBinding к свойствам элемента этого шаблона и управлять ими с помощью стиля. Есть еще VisualManager, как я понял в WPF он достался от Silverlight по наследству. Сам я им пользуюсь крайне редко, так как получается громоздко, использовать можно только Storyboard, а дискретная анимация это полная жопа, писанины тонна. Возможно такой способ хорошо подойдет для Blend'а, но я редко в нём работаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 13:22 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
AntonariyShocker.ProТак прикрути триггер к Path.Как? У Path нет <ControlTemplate.Triggers>У Path есть Style, у Style есть Triggers ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 13:39 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
Roman Mejtesя использовал для этого Shape, Shape на много удобнее тем, что я могу фигуру настроить под размеры, а не размеры под фигуру :)В моем случае всё сложно в этом плане :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 13:42 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
Shocker.ProAntonariyпропущено... Как? У Path нет <ControlTemplate.Triggers>У Path есть Style, у Style есть TriggersПодтупливаю пока, поискать Style внутри Path догадался, а написать Path.Style нет. Теперь окончательно дошло, что <xxx><yyy/></xxx> это контент, а <xxx><xxx.yyy/></xxx> это свойства родителя. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 13:46 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
Что-то не выходит каменный цветок. Написал так: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Все табы рисует TabItemPathBrush'ем. Пробовал писать не Selector.IsSelected, а TabItem.IsSelected - тоже самое, TabItemPathBrushSel игнорируется. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 14:28 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
мне кажется, самое время освоить такое свойство как Trigger.SourceName и Setter.TargetName и будет счастье :) для просты понимания, размести триггер в ContolTemplate.Triggers, триггер повесь на свойство IsSelected (если SourceName не указан используются свойства родителя шаблона а значение меняй у объект Path через Setter c TargetName ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 14:40 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
Дополню: второй триггер на False необязателен. Значение по умолчанию задается простым Setter-ом в стиле, а значение для IsSelected меняется триггером ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 14:48 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
Shocker.ProДополню: второй триггер на False необязателен. Значение по умолчанию задается простым Setter-ом в стиле, а значение для IsSelected меняется триггером для это надо разобраться в приоритетах DependencyProperty для значений http://professorweb.ru/my/WPF/base_WPF/level4/4_4.php ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 14:51 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
Roman Mejtesмне кажется, самое время освоить такое свойство как Trigger.SourceName и Setter.TargetName и будет счастье :) для просты понимания, размести триггер в ContolTemplate.Triggers, триггер повесь на свойство IsSelected (если SourceName не указан используются свойства родителя шаблона а значение меняй у объект Path через Setter c TargetNameСпасибо это помогло. До этого пытался без TargetName туда тыкаться, но не смог добраться до Path. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 15:16 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
Roman Mejtesдля это надо разобраться в приоритетах DependencyProperty для значений http://professorweb.ru/my/WPF/base_WPF/level4/4_4.php Там недостаточно внятно описано вычисление базового значения. Вот более понятный список (в порядке убывания приоритета): 1. Локальное значение 2. Триггер в шаблоне родителя 3. Шаблон родителя 4. Триггеры в стиле 5. Триггеры в шаблоне 6. Установщики стиля 7. Триггеры стиля темы 8. Установщики стиля темы 9. Наследуемое значение 10. Значение по умолчанию ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2016, 15:23 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
Код: xml 1. 2. 3. 4. 5. 6. 7. 8.
А то, если использовать лишь триггер для IsEnabled=False, то цвет выключенного элемента не меняется. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2016, 09:57 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
А хотя так не будет работать, <Button Background="#"> все равно приоритетней и не даст триггеру перекрасить фон. Как тогда решить задачу, чтобы у включенных кнопок был разный фон, а у выключенных - одинаковый, серый? Не писать же по стилю на каждый цвет. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2016, 10:31 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
Расписывать шаблоны с триггерами у самих кнопок тоже не хочется. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2016, 10:33 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
AntonariyКак тогда решить задачу, чтобы у включенных кнопок был разный фон, а у выключенных - одинаковый, серый? Не писать же по стилю на каждый цвет.1. Укажи дефолтному фону Transparent, задавай фон у панели, на которой расположены кнопки. или 2. Наследуй стили - вынеси дефолтный цвет в базовый стиль. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2016, 10:40 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2016, 11:03 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2016, 11:03 |
|
WPF Trigger - применить другой фон
|
|||
---|---|---|---|
#18+
В общем примерно так и сделал: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2016, 12:27 |
|
|
start [/forum/topic.php?fid=21&fpage=12&tid=1440693]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 181ms |
0 / 0 |