
MainWindow.axaml
<Window xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="_04_TextInput.MainWindow" Title="Text Input - 文本输入演示" Width="450" Height="400"> <StackPanel Margin="30" Spacing="20"> <TextBlock Text="TextBox(文本框)" FontSize="16" FontWeight="Bold"/> <StackPanel Spacing="5"> <TextBlock Text="请输入您的名字:"/> <TextBox x:Name="NameTextBox" Watermark="在这里输入..." MaxLength="50"/> </StackPanel> <StackPanel Spacing="5"> <TextBlock Text="多行文本框:"/> <TextBox x:Name="MultiLineTextBox" AcceptsReturn="True" AcceptsTab="True" TextWrapping="Wrap" Height="80" Watermark="支持多行输入..."/> </StackPanel> <Button x:Name="SubmitButton" Content="提交" HorizontalAlignment="Center" Padding="30,10"/> <TextBlock x:Name="ResultText" Text="" FontSize="14" Foreground="#2196F3" TextWrapping="Wrap"/> </StackPanel> </Window>
MainWindow.axaml.cs
using Avalonia;
using Avalonia.Controls;
using Avalonia.Interactivity;
namespace _04_TextInput;
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
SubmitButton.Click += OnSubmitClick;
}
private void OnSubmitClick(object? sender, RoutedEventArgs e)
{
string name = NameTextBox.Text ?? "";
string description = MultiLineTextBox.Text ?? "";
if (string.IsNullOrWhiteSpace(name))
{
ResultText.Text = "请输入名字!";
return;
}
ResultText.Text = $"您好,{name}!\n您的描述:{(string.IsNullOrWhiteSpace(description) ? "无" : description)}";
}
}效果:
