1、TextBox 介绍
TextBox :文本输入框控件,是WPF中最基本的文字输入控件。它允许最终用户在一行、对话输入、或多行编写,就像是个编辑器。
尝试在文本框里鼠标右击。你会得到一个选项菜单,允许你和Windows剪贴板一块使用这个TextBox。默认的撤销和重做的键盘快捷方式(Ctrl + Z 和 Ctrl + Y)也应该是起作用的,并且所有这些功能你能够不受限制的使用。
特别要注意:
TextBox 具有对浮泡 MouseUp 和 MouseDown 事件的内置处理。 因此,将不调用侦 MouseUp 听的自定义事件处理程序或 MouseDown 从中 TextBox 侦听的事件。 如果需要响应这些事件,请改为侦听隧道 PreviewMouseUp 和 PreviewMouseDown 事件,或将处理程序注册到 HandledEventsToo 参数 (后一个选项只能通过代码) 使用。 请勿标记所处理的事件,除非有意禁用 TextBox 对这些事件的本机处理,并且请注意,这对控件的 UI 有显著影响。
**************************************************************************************************************
2、常用属性介绍
Background:背景; BorderBrush:边框背景的颜色; BorderThickness:边框宽度;
CanRedo:是否可重做最新的撤消操作; CanUndo:是否可撤消最新的操作;
CaretIndex:获取或设置插入符号的插入位置索引。
FlowDirection:获取或设置文本和其他用户界面 (UI) 元素在控制其布局的任何父元素内流动的方向。
Focusable:焦点获取; FontWeight:字体的粗细;Foreground:前景色;
FontFamily:字体样式; FontSize:字体大小; FontStretch:字体在屏幕上紧缩或加宽的程度。
HorizontalAlignment/VerticalAlignment:获取或设置在父元素中组合此元素时所应用的水平对齐特征/垂直对齐特征。
HorizontalContentAlignment/VerticalContentAlignment:获取或设置控件内容的水平对齐方式/垂直对齐方式。
HorizontalScrollBarVisibility/VerticalScrollBarVisibility:是否显示水平滚动条/垂直滚动条;
HorizontalOffset/VerticalOffset:获取和设置水平滚动条的位置/垂直滚动条的位置;
IsEnabled:使能,是否可用; IsReadOnly:对用户而言是否只读;
IsUndoEnabled:是否支持撤销功能; LineCount:文本总行数;
MaxLength:在文本框中手动输入的最大字符数。
MaxLines/MinLines:最大可见行数/最小行数。
Name:元素标识名称; Opacity:透明度;
SelectedText:文本框中当前选择的内容。
SelectionBrush:突出显示选定文本的画笔。
SelectionLength:文本框中当前选择的字符数。
SelectionOpacity:选择文本的透明度。
SelectionStart:当前选择的起始位置的字符索引。
SelectionTextBrush:选中文本的颜色;
Text:文本框的文本内容。
TextAlignment:文本框内容的水平对齐方式。
TextWrapping:文本框中文本的换行方式。
**************************************************************************************************************
3、具体代码示例
<StackPanel Margin="10">
<!--添加一个名为txtbox1的TextBox,外边距为10、宽度200、高度35、水平居中、垂直居中-->
<TextBox x:Name="txtbox1" Margin="10" Width="200" Height="35" HorizontalAlignment="Center" VerticalAlignment="Center" >
秋风清,秋月明,落叶聚还散,寒鸦栖复惊,相思相见知何日,此时此夜难为情。
</TextBox>
<!--添加一个名为txtbox2的TextBox,宽度200、高度80、水平居左、垂直居中、前景色为OrangeRed、
背景色为Wheat、边框颜色为Cyan,边框宽度为1,文本内容水平居中垂直居中-->
<TextBox x:Name="txtbox2" Margin="10 0 10 0" Width="200" Height="80" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="OrangeRed"
Background="Wheat" BorderBrush="Cyan" BorderThickness="1" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
TextWrapping="Wrap">
秋风清,秋月明,落叶聚还散,寒鸦栖复惊,相思相见知何日,此时此夜难为情。
</TextBox>
<!--添加一个名为txtbox3的TextBox,宽度200、高度60、水平居左、垂直居中、前景色为OrangeRed、
背景色为Wheat、文本内容水平居中垂直居上、选中文本的颜色为YellowGreen,透明为0.5-->
<TextBox x:Name="txtbox3" Width="200" Height="60" HorizontalAlignment="Right" VerticalAlignment="Center" Foreground="OrangeRed"
Background="Wheat" HorizontalContentAlignment="Center" VerticalContentAlignment="Top"
TextDecorations="Underline" SelectionBrush="YellowGreen" SelectionOpacity="0.5">
秋风清,秋月明,落叶聚还散,寒鸦栖复惊,相思相见知何日,此时此夜难为情。
</TextBox>
</StackPanel>
**************************************************************************************************************
4、效果图
**************************************************************************************************************
5、总结和扩展
TextBox:通过改写模板样式,可以实现水印输入框,密码框,以及各式各样的输入框。
AcceptsReturn决定了文本框是多行的,当你按下回车键时,换到下一行。TextWrapping使文字到达右边界时自动切换到下一行。
**************************************************************************************************************