diff --git a/src/Avalonia.Controls/TextBox.cs b/src/Avalonia.Controls/TextBox.cs index 1a9bdf6e32..0ad2a55f19 100644 --- a/src/Avalonia.Controls/TextBox.cs +++ b/src/Avalonia.Controls/TextBox.cs @@ -157,6 +157,8 @@ namespace Avalonia.Controls horizontalScrollBarVisibility, BindingPriority.Style); _undoRedoHelper = new UndoRedoHelper(this); + + UpdatePseudoclasses(); } public bool AcceptsReturn @@ -378,6 +380,16 @@ namespace Avalonia.Controls } } + protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) + { + base.OnPropertyChanged(change); + + if (change.Property == TextProperty) + { + UpdatePseudoclasses(); + } + } + protected override void OnGotFocus(GotFocusEventArgs e) { base.OnGotFocus(e); @@ -1100,6 +1112,11 @@ namespace Avalonia.Controls SelectionEnd = CaretIndex; } + private void UpdatePseudoclasses() + { + PseudoClasses.Set(":empty", string.IsNullOrWhiteSpace(Text)); + } + private bool IsPasswordBox => PasswordChar != default(char); UndoRedoState UndoRedoHelper.IUndoRedoHost.UndoRedoState