As promised, a public Behavior API proposal. Summary:
Introduce a new|Behavior|interface that can be set on a control to replace its current behavior. The new behavior can be fully custom or composed (or later subclassed) from a default behavior. Some default behaviors will be provided as part of this proposal, but not all.
See here: https://gist.github.com/hjohn/293f3b0ec98562547d49832a2ce56fe7 --John