#wpf
#wpf
Вопрос:
Есть ли веская причина, по которой класс TriggerEvent usd в EventTriggers реализован как внутренний? Я могу найти 3 реализации этой абстрактной базы Claas. Один для воспроизведения звука и два разных действия в отношении раскадровок. Что, если я хочу выполнить действие «Отправить электронную почту»? Это скорее гипотетический вопрос. У меня нет реального приложения для этого. Я только что заметил это и задавался вопросом, почему это реализовано таким образом. Для меня было бы логично создать свое собственное действие и просто использовать его в триггере события (интерфейс был бы еще лучше). Я здесь что-то упускаю?
С уважением!
Ответ №1:
Я сомневаюсь, что вы можете что-либо сделать с этими классами, вместо этого используйте Interactivity из Blend SDK, который предоставляет классы ( TriggerAction<T>
например), которые могут быть подклассированы.
Редактировать: Почему-то это можно найти только в документации Silverlight к классу:
triggerAction существует в Silverlight для совместимости с WPF. triggerAction не предназначен для использования в качестве основы для других реализаций триггеров; весь синтаксис триггеров не рекомендуется использовать в Silverlight 4. Для получения дополнительной информации см. Примечания в EventTrigger или Настройка внешнего вида существующего элемента управления с помощью ControlTemplate.
Все еще нет причины.
Комментарии:
1. Спасибо за совет. Это работает довольно неплохо. Но я все еще ищу возможную причину
2. Я не знаю, это загадка! (Возможно, было бы слишком мощно просто сделать его общедоступным, все приложения WPF взорвались бы)
3. Правильно :). MS довольно часто делает это и с другими классами. Они либо запечатаны, либо являются внутренними. Однако, еще раз спасибо. Теперь я, по крайней мере, знаю, что для этого нет очевидной причины.