- Add property as AttachedProperty, so it can be opt-in or opt-out
- Only bubble up the scroll event if the end is reached
- Make use of this Property in:
o ListBox
o TextBox
o TreeView
Twofold fix:
1) Cursor doesn't show IBeam when not in DockPanel
2) If you do click the border, it just focuses the text box -- it does not move the selection
`:valid` and `:invalid` pseudoclasses are being added to all `ContentControls` simply in order to show/hide the `ContentPresenter` in `CheckBox`. Instead of this, add some `ObjectConverters` and use them to set the visibility of the `ContentPresenter.`
Also renamed the converters in `StringConverters` to add an `Is` prefix as the `ObjectConverters` didn't look right as just `Null` and `NotNull`.
Rather than just use a standard `Binding`, make `TemplateBinding` a lightweight binding in the case where the binding is simply to a property on the templated parent.
Moved Validation Error tracking to attached an attached property
Created an shared error indicator that can be simply added to control
templates and re-styled across all controls
This should reduce the need for code and markup duplication while
allowing for a consistent visual interface
Otherwise if `TextBox.CaretIndex` is set before the `TextBox`'s template is applied then it will be coerced to null on the `TextPresenter` when created as `Text` will still be null at this point.