Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Порядок выполнения триггеров (WPF) / 7 сообщений из 7, страница 1 из 1
07.10.2013, 04:58
    #38418417
4eburawka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок выполнения триггеров (WPF)
И еще раз здрасте.

У меня таблица одинаковых ToggleButton'ов со свойством Type. По этому признаку я их раскрашиваю. Вот так:
Код: xml
1.
2.
3.
                            <Trigger Property="Type" Value="Pair">
                                <Setter Property="Background" TargetName="border" Value="PaleTurquoise"/>
                            </Trigger>



а вот так я их раскрашиваю когда они нажаты:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
                            <MultiTrigger>
                                <MultiTrigger.Conditions>
                                    <Condition Property="IsChecked" Value="True" />
                                    <Condition Property="Type" Value="Pair" />
                                </MultiTrigger.Conditions>
                                <MultiTrigger.Setters>
                                    <Setter Property="Background" Value="DodgerBlue" />
                                </MultiTrigger.Setters>
                            </MultiTrigger>



Я заметил что расположение триггеров влияет на их выполнение. Но в данном случае, от перестановки этих триггеров, результат не меняется: Когда кнопка нажата она не меняет свой цвет. А у меня кроме этих триггеров есть еще триггеры IsMouseOver и IsEnabled. По этому поводу вопросы: Каков порядок выполнения триггеров? Что он делает если несколько условий выполняются?

П.С. Да я знаю что MultiTriggerом можно все случаи обработать, но уж слишком большой код получится.
...
Рейтинг: 0 / 0
07.10.2013, 05:51
    #38418423
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок выполнения триггеров (WPF)
У триггеров приоритет "сверху-вниз". Последний триггер имеет наивысший приоритет.
...
Рейтинг: 0 / 0
07.10.2013, 07:15
    #38418441
4eburawka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок выполнения триггеров (WPF)
А как он поступит если 2 последних триггера будут менять background, один на синий другой на красный (обои разумеется выполняют условия)?
...
Рейтинг: 0 / 0
07.10.2013, 08:57
    #38418468
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок выполнения триггеров (WPF)
4eburawkaА как он поступит если 2 последних триггера будут менять background, один на синий другой на красный (обои разумеется выполняют условия)?Будет цвет, установленный последним триггером, для которого выполнилось условие.
...
Рейтинг: 0 / 0
07.10.2013, 19:29
    #38419389
4eburawka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок выполнения триггеров (WPF)
Спасибо, разобрался. Все как вы и говорите.
Остался не ясным только один момент:
Что делает выделенное жирным? Без него работает, а с ним цвет в МултиТриггере не меняется.
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
                            <Trigger Property="Type" Value="Pair">
                                <Setter Property="Background" TargetName="border" Value="PaleTurquoise"/>
                            </Trigger>
                            <MultiTrigger>
                                <MultiTrigger.Conditions>
                                    <Condition Property="IsChecked" Value="True" />
                                    <Condition Property="Type" Value="Pair" />
                                </MultiTrigger.Conditions>
                                <MultiTrigger.Setters>
                                    <Setter Property="Background" Value="DodgerBlue" />
                                </MultiTrigger.Setters>
                            </MultiTrigger>
...
Рейтинг: 0 / 0
07.10.2013, 19:30
    #38419392
4eburawka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок выполнения триггеров (WPF)
...oops, не выделилось жирным TargetName="border"
...
Рейтинг: 0 / 0
08.10.2013, 06:15
    #38419625
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок выполнения триггеров (WPF)
4eburawkaЧто делает выделенное жирным?
http://msdn.microsoft.com/en-us/library/system.windows.setter.targetname.aspx
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Порядок выполнения триггеров (WPF) / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]