diff --git a/Perspex.Controls/TextBox.cs b/Perspex.Controls/TextBox.cs index 43258abb2b..ae1d313ba1 100644 --- a/Perspex.Controls/TextBox.cs +++ b/Perspex.Controls/TextBox.cs @@ -112,20 +112,8 @@ namespace Perspex.Controls protected override void OnTemplateApplied() { this.presenter = this.GetTemplateChild("textPresenter"); - } - - protected override void OnGotFocus(GotFocusEventArgs e) - { - base.OnGotFocus(e); - this.presenter.ShowCaret(); - } - - protected override void OnLostFocus(RoutedEventArgs e) - { - base.OnLostFocus(e); - this.SelectionStart = 0; - this.SelectionEnd = 0; - this.presenter.HideCaret(); + this.presenter.GotFocus += PresenterGotFocus; + this.presenter.LostFocus += PresenterLostFocus; } protected override void OnKeyDown(KeyEventArgs e) @@ -451,5 +439,17 @@ namespace Perspex.Controls return i; } + + private void PresenterGotFocus(object sender, RoutedEventArgs e) + { + this.presenter.ShowCaret(); + } + + private void PresenterLostFocus(object sender, RoutedEventArgs e) + { + this.SelectionStart = 0; + this.SelectionEnd = 0; + this.presenter.HideCaret(); + } } } diff --git a/Perspex.Themes.Default/TextBoxStyle.cs b/Perspex.Themes.Default/TextBoxStyle.cs index c9ff7f6605..8b341f616d 100644 --- a/Perspex.Themes.Default/TextBoxStyle.cs +++ b/Perspex.Themes.Default/TextBoxStyle.cs @@ -60,7 +60,7 @@ namespace Perspex.Themes.Default [~TextPresenter.CaretIndexProperty] = control[~TextBox.CaretIndexProperty], [~TextPresenter.SelectionStartProperty] = control[~TextBox.SelectionStartProperty], [~TextPresenter.SelectionEndProperty] = control[~TextBox.SelectionEndProperty], - [~~TextPresenter.TextProperty] = control[~~TextBox.TextProperty], + [~TextPresenter.TextProperty] = control[~TextBox.TextProperty], [~TextPresenter.TextWrappingProperty] = control[~TextBox.TextWrappingProperty], } }