WPF教程(十七)TextBox
来源:互联网 发布:魔方数据恢复软件 编辑:程序博客网 时间:2024/06/02 05:31
文本框是WPF最基础的文本输入控件,允许终端用户编写文本,可以是一行文字,也可以是多行。
单行文本框
文本框是如此的简单,你都不需要设置任何属性,就可以拥有一个完整的可编辑区。
<span style="font-size:14px;"><Window x:Class="WpfTutorialSamples.Basic_controls.TextBoxSample" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="TextBoxSample" Height="80" Width="250"> <StackPanel Margin="10"> <TextBox /> </StackPanel></Window></span>
以上代码就可以生成一个文本框,截图中的文字是我在运行代码之后输入进去的。你可以在标记里面预先输入,使用以下属性:
<span style="font-size:14px;"><TextBox Text="Hello, world!" /></span>右击文本框,会弹出一个菜单,允许你使用系统剪切板。还可以使用默认的键盘快捷键,撤销Ctrl+Z和重做Ctrl+Y,所有这些都是自动获得的。
多行文本框
运行上面的例子,你会发现文本框默认的是单行。按下Enter键没什么反应,如果一直添加文字直到超出单行长度,文本框会滚动。下面的例子展示了如何显示多行:
<span style="font-size:14px;"><Window x:Class="WpfTutorialSamples.Basic_controls.TextBoxSample" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="TextBoxSample" Height="160" Width="280"> <Grid Margin="10"> <TextBox AcceptsReturn="True" TextWrapping="Wrap" /> </Grid></Window></span>
代码中添加了两个属性:AcceptsReturn决定了文本框是多行的,当你按下回车键时,换到下一行。TextWrapping使文字到达右边界时自动切换到下一行。
使用文本框选择器
和其他系统的文本编辑控件一样,文本框可以一次性删除全部文字,拷贝一部分到剪切板。WPF文本框在选择文字后拥有一系列属性,你可以查看甚至修改。
<span style="font-size:14px;"><Window x:Class="WpfTutorialSamples.Basic_controls.TextBoxSelectionSample" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="TextBoxSelectionSample" Height="150" Width="300"><DockPanel Margin="10"><TextBox SelectionChanged="TextBox_SelectionChanged" DockPanel.Dock="Top" /><TextBox Name="txtStatus" AcceptsReturn="True" TextWrapping="Wrap" IsReadOnly="True" /></DockPanel></Window></span>上面的例子包含了两个文本框控件:一个用户编辑文字,一个用于输出当前选择器的状态。因此,我们设置了IsReadOnly属性为True,防止在状态文本框中编辑。在第一个文本框中订阅SelectionChanged事件,在后台代码如下处理:
<span style="font-size:14px;">using System;using System.Text;using System.Windows;using System.Windows.Controls;namespace WpfTutorialSamples.Basic_controls{public partial class TextBoxSelectionSample : Window{public TextBoxSelectionSample(){InitializeComponent();}private void TextBox_SelectionChanged(object sender, RoutedEventArgs e){TextBox textBox = sender as TextBox;txtStatus.Text = "Selection starts at character #" + textBox.SelectionStart + Environment.NewLine;txtStatus.Text += "Selection is " + textBox.SelectionLength + " character(s) long" + Environment.NewLine;txtStatus.Text += "Selected text: '" + textBox.SelectedText + "'";}}}</span>
我们实现了如下功能:
SelectionStart:获取当前光标的位置,也就是选择器开始的地方。
SelectionLength:获取当前选择器的长度,否则返回0.
SelectedText:获取当前选中的字符,否则返回空的字符串
修改选择器
所有这些属性都是可读可写的,例如,通过设置SelectionStart和SelectionLength这两个属性,可以选中一段文字;设置SelectedText属性可以插入和选择一个字符串。最后一定要记住,使用文本框之前,必须先获得焦点,可以使用Focus()方法。
0 0
- WPF教程(十七)TextBox
- WPF教程(二十七)DockPanel
- NeHe OpenGL教程 (十七)
- Golang教程:(十七)方法
- wpf学习笔记---TextBox
- WPF Textbox的使用
- [WPF]Watermask TextBox Style
- WPF TextBox 验证输入
- WPF 圆角textbox
- WPF TextBox数据验证
- wpf TextBox 验证
- wpf TextBox日志文本框
- WPF 水印 TextBox MaskedTextBox
- wpf TextBox 验证
- WPF自学笔记(一):简易记事本(Rich TextBox)
- WPF--TextBox样式使用(文字居中、背景、圆角...)
- WPF中自动增加行(动画)的TextBox
- WPF教程(一) WPF是什么?
- Spring事务传播行为
- 闲说HeartBeat心跳包和TCP协议的KeepAlive机制
- 删除注册表里的JDK
- A/B(逆元)
- POJ 3461 Oulipo【KMP,子串出现次数,可重叠】
- WPF教程(十七)TextBox
- 【MySQL】基于MySQL的SQL优化(一)——从用explain关键字分析SQL语句开始
- 内存申请的好习惯
- 数据库基础(1)
- oracle spatial - 空间字段初探
- 【Java多线程与并发库】4.传统线程同步通信技术
- 您只能在 HTML 输出流中使用 document.write。 如果您在文档已加载后使用它(比如在函数中),会覆盖整个文档。
- 加密技术之PGP与邮件加密
- 在GitHub上托管项目