瀏覽代碼

Moved caret visibility decision to helper method and called that method in OnTemplateApplied also

[email protected] 7 年之前
父節點
當前提交
06dbc91583
共有 1 個文件被更改,包括 10 次插入5 次删除
  1. 10 5
      src/Avalonia.Controls/TextBox.cs

+ 10 - 5
src/Avalonia.Controls/TextBox.cs

@@ -262,7 +262,7 @@ namespace Avalonia.Controls
 
             if (IsFocused)
             {
-                _presenter.ShowCaret();
+                DecideCaretVisibility();
             }
         }
 
@@ -282,15 +282,20 @@ namespace Avalonia.Controls
             }
             else
             {
-                if (!IsReadOnly)
-                    _presenter?.ShowCaret();
-                else
-                    _presenter?.HideCaret();
+                DecideCaretVisibility();
             }
 
             e.Handled = true;
         }
 
+        private void DecideCaretVisibility()
+        {
+            if (!IsReadOnly || IsReadOnlyCaretVisible)
+                _presenter?.ShowCaret();
+            else
+                _presenter?.HideCaret();
+        }
+
         protected override void OnLostFocus(RoutedEventArgs e)
         {
             base.OnLostFocus(e);