【C# .NET】WPF (七) 常用控件 之 文本控件(TextControls)
WPF常用控件
WPF 的所有控件都是从 System.Windows.Controls.Control 类中派生出来,其命名空间是System.Windows.Controls 。
WPF有两个类似的类继承树,一个与界面( UI )相关,如 UIElement 类;另一个与内容( Content )相关,如 ContentElement。
ContentElement 支持文本方式,而 UIElement 则支持图形方式。
Control 类中派生出来的控件,基本上可以分为4类:
- 内容控件(ContentControls)
- 条目控件(ItemsControls)
- 文本控件(TextControls)
- 范围控件(RangeControls)
文本控件(TextControls)继承树:
7. 文本控件(TextControls)
1)文本控件包括:
1.PasswordBox(密码输入框)
2.TextBox(基本输入框)
3.RichTextBox(富文本输入框)
2)TextBoxBase 是 TextBox 和 RichTextBox 的基类,它是一个不能实例化的抽象类。
7.1 密码输入框(PasswordBox)
密码输入框,用于输入和处理密码的控件。
属性 | 描述 |
---|---|
MaxLength | 获取或设置密码的最大长度 |
PasswordChar | 获取或设置密码的掩码字符 |
Password | 获取或设置当前保留的密码 |
XAML代码:
<StackPanel Margin="10">
<TextBlock Text="用户名" Foreground="LightGreen"/>
<TextBox/>
<Separator Margin="0,15"/>
<TextBlock Text="请输入密码" Foreground="LightGreen"/>
<PasswordBox x:Name="passwordBox" MaxLength="10" PasswordChar="*"
PasswordChanged="passwordBox_PasswordChanged"/>
<TextBlock x:Name="textBlock" Foreground="LightBlue" Margin="0,15"/>
</StackPanel>
运行演示:
7.2 文字输入框(TextBox)
1)TextBoxBase 常用属性
由于 TextBox 和 RichTextBox 都是以 TextBoxBase 为基类,所以这些属性对两种文本输入控件都有效。
属性 | 描述 |
---|---|
AcceptsReturn | 是否支持输入 Enter 键换行 |
AcceptsTab | 是否支持插入tab控制符 |
AutoWordSelection | 是否支持自动选择整个词 |
CanRedo | 是否支持重做前一个动作 |
CanUndo | 是否支持撤销前一个动作 |
ExtentHeight | 获取可见的内容区域的垂直大小 |
ExtentWidth | 获取可见的内容区域的水平大小 |
HorizontalOffset | 获取或设置水平滚动条位置 |
HorizontalScrollBarVisibility | 是否显示水平滚动条 |
VerticalOffset | 获取或设置垂直滚动条的位置 |
VerticalScrollBarVisibility | 是否显示垂直滚动条 |
IsReadOnly | 是否只读 |
IsUndoEnabled | 是否支持恢复操作 |
UndoLimit | 获取或设置可以恢复的动作次数 |
SpellCheck | 设置SpellCheck.IsEnabled属性,可自动检查输入框中单词是否拼写错误 |
ViewportWidth | 设置视窗的宽度 |
ViewportHeight | 设置视窗的高度 |
2)文字输入框
文字输入框,该控件可用于显示或编辑无格式文本。
文字输入框是一个非常常用的控件,它是由多个控件组成的,其中含有Border、ScrollViewer、Grid、Rectangle、TextView、ScrollBar等一些控件。
属性 | 描述 |
---|---|
MinLines | 获取或设置最小可见行数 |
MaxLines | 获取或设置最大可见行数 |
Text | 获取或设置文本框的文本内容 |
CharacterCasing | 枚举类,获取或设置输入字符的大小写 |
TextAlignment | 枚举类,获取或设置文本框的内容的水平对齐方式 |
SelectionLength | 获取或设置当前所选内容的字符数 |
LineCount | 获取文本框中的总行数 |
SelectedText | 获取或设置文本框中当前选择的内容 |
TextWrapping | 枚举类,获取或设置文本的换行方式 |
MaxLength | 获取或设置文本框中输入的最大字符数 |
XAML代码:
<StackPanel Margin="10">
<TextBox MinLines="1"
MaxLines="5"
MaxLength="100"
AcceptsTab="True"
AcceptsReturn="True"
TextWrapping="Wrap"
TextAlignment="Center"
CharacterCasing="Upper"/>
</StackPanel>
运行结果:
7.3 富文本框(RichTextBox)
富文本框,该控件可以使用图像、声音等对象作为文本内容。
XAML代码:
<StackPanel Margin="10">
<RichTextBox Name="richTB">
<FlowDocument>
<Paragraph>
<TextBox Text="test test test test test"/>
<LineBreak/>
<Rectangle Width="100" Height="20" Fill="Green"/>
<LineBreak/>
<Image Source=".\Image\liulanqi.png" Width="50" Height="50"/>
<LineBreak/>
<Button Content="我是按钮" Width="100" Height="20" Foreground="Black"/>