diff --git a/src/Example/Program.cs b/src/Example/Program.cs
index 00a04c1..551914f 100644
--- a/src/Example/Program.cs
+++ b/src/Example/Program.cs
@@ -9,7 +9,7 @@ using TinyTUI.Stdout;
using var terminalInput = new ConsoleTerminalInput();
var terminalOutput = new ConsoleTerminalOutput();
var parser = new DefaultInputParser();
-var renderer = new DemoRenderer(terminalOutput);
+var renderer = new FullScreenRenderer(terminalOutput);
using var runtime = new TuiRuntime(terminalInput, parser, renderer);
var component = new EchoComponent(runtime);
@@ -46,6 +46,8 @@ file sealed class EchoComponent(ITuiRuntime runtime) : IInputComponent
{
"TinyTUI Runtime 示例",
"====================",
+ $"当前渲染宽度: {width}",
+ string.Empty,
"测试方式:",
"- 输入普通字符 验证 Text 事件会进入焦点组件",
"- 按方向键 Enter Backspace Tab Delete 验证 Key 事件会进入焦点组件",
@@ -94,31 +96,3 @@ file sealed class EchoComponent(ITuiRuntime runtime) : IInputComponent
}));
}
}
-
-///
-/// 用于手动验证 Runtime 的临时全量渲染器
-///
-file sealed class DemoRenderer(ConsoleTerminalOutput output) : IRenderer
-{
- ///
- public void Render(IReadOnlyList lines, TerminalSize size)
- {
- output.ClearScreen();
- output.Write($"尺寸: {size.Columns} x {size.Rows}\r\n");
- output.Write("\r\n");
-
- foreach (var line in lines)
- {
- output.Write(line);
- output.Write("\r\n");
- }
-
- output.Flush();
- }
-
- ///
- public void Reset()
- {
- output.ClearScreen();
- }
-}
diff --git a/src/TinyTUI/Rendering/FullScreenRenderer.cs b/src/TinyTUI/Rendering/FullScreenRenderer.cs
new file mode 100644
index 0000000..1950317
--- /dev/null
+++ b/src/TinyTUI/Rendering/FullScreenRenderer.cs
@@ -0,0 +1,30 @@
+using TinyTUI.Stdout;
+
+namespace TinyTUI.Rendering;
+
+///
+/// 每次渲染都清屏并重绘全部内容的基础渲染器
+///
+public sealed class FullScreenRenderer(ITerminalOutput output) : IRenderer
+{
+ ///
+ public void Render(IReadOnlyList lines, TerminalSize size)
+ {
+ output.ClearScreen();
+
+ foreach (var line in lines)
+ {
+ output.Write(line);
+ output.Write("\r\n");
+ }
+
+ output.Flush();
+ }
+
+ ///
+ public void Reset()
+ {
+ output.ClearScreen();
+ output.Flush();
+ }
+}