WPF, триггер, область стилей и модель декларативного программирования - PullRequest
0 голосов
/ 27 ноября 2010

TL; DR Xaml мне кажется непрозрачным, почему удаление TargetName из анимации завершилось неудачно в одном случае и сработало в другом для точно такого же (копирование и вставка) объявления триггера?

В Этот вопрос Моя проблема была решена путем перемещения триггера в стиль и применения стиля к текстовым полям. Из примера видно, что раскадровка имеет свойство TargetName, установленное в имя одного из текстовых полей.

При попытке сделать эту работу я также поместил триггер в раздел Grid.Triggers и удалил свойство TargetName. Это вызвало исключение.

Решение состояло в том, чтобы поместить его в стиль и затем удалить установщик свойства TargetName. Стиль не назван, но применяется к текстовым полям. В этом случае, если TargetName не установлено, это сработало.

Так вот в чем вопрос. Мне потребовалось немного возиться, чтобы заставить его работать, переименование TargetName казалось разумным, поскольку я хотел, чтобы оно применялось к нескольким текстовым полям, но я попробовал это, когда поместил в раздел Grid.Triggers. Почему это не сработало, и почему это сработало в стиле? Что еще более важно, как я могу использовать эти знания для решения подобных проблем в дальнейшем? Думаю, это хитро, Xaml кажется мне довольно непрозрачным.

1 Ответ

0 голосов
/ 27 ноября 2010

Storyboard.TargetName не о применении поведения;это часть исполнения поведения.Стили обычно предназначены для применения предопределенного поведения в различных экземплярах, которые могут включать в себя раскадровку и, возможно, Storyboard.TargetName.

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

Понимание концепций заранее предотвратит часыустранение неисправностей позже.Есть много замечательных статей о WPF и его концепциях, а также много замечательных книг .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...