4.4 文本框(TextBox)

文本框(TextBox)控件是表示一个可用于显示和编辑单格式、多行文本的控件。TextBox控件常用于在表单中编辑非格式化文本,例如,如果一个表单要求输入用户姓名、电话号码等,则可以使用 TextBox 控件来进行文本输入。控件的XAML语法如下:

<TextBox .../>

TextBox的高度可以是一行,也可以包含多行。对于输入少量纯文本(如表单中的“姓名”、“电话号码”等)而言,单行TextBox是最好的选择。同时你也可以创建一个使用户可以输入多行文本的TextBox,例如,表单要求输入较多的文字,可能需要使用支持多行文本的TextBox。设置多行文本的方法很简单,将TextWrapping特性设置为Wrap会使文本在到达TextBox控件的边缘时换至新行,必要时会自动扩展TextBox控件以便为新行留出空间,这点是和TextBlock控件一样的。同时TextBox控件也可以设置文字的相关属性(FontFamily、FontSize、FontStyle、FontWeight)。下面我们再来介绍TextBox控件中的一些特别的功能特性。

(1)支持回车键换行

因为TextBox控件是一个文本输入的控件,所以它除了对自动换行的支持之外,还这次还回车键换行的输入。不过在默认的情况下,TextBox控件是不支持回车键换行的,如果需要支持回车键换行,需要把把AcceptsReturn属性设置为true。

(2)键盘的类型

由于Windows Phone手机并不支持第三方的输入法软件,所以在文本框输入的情况下,只能够使用系统提供的输入法和键盘类型。那么TextBox控件是可以通过InputScope属性来设置在控件输入信息的时候所提供的键盘类型,比如你的TextBox文本框只是要求用户输入手机号码,那么你通过设置InputScope="TelephoneNumber"来制定电话号码的输入键盘。关于键盘的类型可以通过枚举InputScopeNameValue来看到所有的键盘类型,包括有EmailSmtpAddress(邮件地址输入)、Url(网址输入)、Number(数字输入)等等。如果使用C#代码来设置TextBox控件的键盘类型,代码的编写会稍微麻烦一点,示例代码如下所示:

textBox1.InputScope = new InputScope();

textBox1.InputScope.Names.Add(new InputScopeName() { NameValue = InputScopeNameValue.TelephoneLocalNumber });

(3)控件头

通常我们在创建一个输入框的时候都需要在输入框的上面添加相关的说明,比如“请输入用户名”等。那么TextBox控件会通过Header属性来直接支持添加这个控件头的描述说明,简化了控件的实现。Header属性的默认样式是跟系统的文本框的控件头的样式保持一致。

(4)操作事件

TextBox控件支持三个常用的操作事件,分别是TextChanged事件(TextBox控件文本信息的改变会触发该事件)、SelectionChanged事件(TextBox控件选择信息的改变会触发该事件)、Paste事件(在TextBox控件中粘贴的操作会触发该事件)。TextChanged事件通常会用来检查用户输入信息的改变,然后再获取控件的Text属性的信息进行相关的操作。SelectionChanged事件也是类似的作用,不过SelectionChanged事件则是检查用户选择的文本信息的改变,然后获取控件的SelectedText属性表示选择的文本信息,如果没有选择文本信息,则SelectedText的值是空的字符串。当控件中发生粘贴操作的时候会触发Paste事件,如果有一些信息的输入是不允许粘贴的,可以利用该事件来禁止粘贴的输入操作。

下面给出文本框的示例:创建TextBox控件演示TextBox控件的键盘选择,控件头和操作事件的实现。
    代码清单4-3文本框控件演示(源代码:第4章\Examples_4_3)

MainPage.xaml文件主要代码
------------------------------------------------------------------------------------------------------------------
<StackPanel>
<!--创建一个电话号码的输入文本框控件-->
<TextBox InputScope="TelephoneNumber">
<TextBox.Header>
请输入电话号码:
</TextBox.Header>
</TextBox>
<!--测试TextBox控件的相关操作事件-->
<TextBox x:Name="TextBox1" TextWrapping="Wrap" AcceptsReturn ="true" Header="输入信息:" SelectionHighlightColor="Red"
TextChanged="TextBox1_TextChanged"
SelectionChanged="TextBox1_SelectionChanged"
Paste="TextBox1_Paste"/>
<TextBlock x:Name="textBlock2" Text="操作信息:" FontSize="20"/>
<TextBlock x:Name="textBlock1" TextWrapping="Wrap" FontSize="20"/>
</StackPanel>
MainPage.xam.cs文件主要代码
------------------------------------------------------------------------------------------------------------------
// 文本的信息
string text = "";
// 选择的文本信息
string selectedText = "";
// 是否发生粘贴
string pasteTest = "";
// 文本变化的事件
private void TextBox1_TextChanged(object sender, TextChangedEventArgs e)
{
text = TextBox1.Text;
ShowInformation();
}
// 文本选择的事件
private void TextBox1_SelectionChanged(object sender, RoutedEventArgs e)
{
selectedText = TextBox1.SelectedText;
ShowInformation();
}
// 粘贴事件
private void TextBox1_Paste(object sender, TextControlPasteEventArgs e)
{
text = TextBox1.Text;
selectedText = TextBox1.SelectedText;
pasteTest = "产生了粘贴操作";
ShowInformation();
}
// 操作信息展示
private void ShowInformation()
{
textBlock1.Text = "文本信息:“" + text + "”选择的信息:“" + selectedText + "”粘贴的信息:“" + pasteTest + "”";
}

本文来源于《深入浅出Windows Phone 8.1 应用开发》

WP8.1 Runtime文章列表:http://www.cnblogs.com/linzheng/p/3998037.html

源代码下载:http://vdisk.weibo.com/s/zt_pyrfNHb99O

欢迎关注我的微博@WP林政   微信公众号:wp开发(号:wpkaifa)

WP8.1技术交流群:372552293

[深入浅出WP8.1(Runtime)]文本框(TextBox)的更多相关文章

  1. [深入浅出WP8.1(Runtime)]文本块(TextBlock)

    4.3 文本块(TextBlock) 文本块(TextBlock)控件是用于显示少量文本的轻量控件,可以通过TextBlock呈现只读的文本,你可以把TextBlock控件理解为一种纯文本的展示控件. ...

  2. [深入浅出WP8.1(Runtime)]浮出控件(Flyout)

    4.15 浮出控件(Flyout) 浮出控件(Flyout)是一个轻型的辅助型的弹出控件,通常会作为提示或者要求用户进行相关的交互来使用.Flyout控件与Windows Phone里面的弹出框Mes ...

  3. [深入浅出WP8.1(Runtime)]应用文件的URI方案

    6.2.4 应用文件的URI方案 在上文我们获取文件的方式都是通过应用程序的三个跟目录的文件夹对象来获取文件夹对象和文件对象,那么我们这一小节来讲解一种新的获取文件对象的方式,这种方式就是通过Uri地 ...

  4. [深入浅出WP8.1(Runtime)]数据绑定的基础

    11.1 数据绑定的基础 数据绑定是一种XAML界面和后台数据通信的方式,因为界面和后台数据的通信的场景有多种,并且数据于数据之间也存在着不一样的关联关系,所以数据绑定的实现技巧和方式也是多种多样的. ...

  5. [深入浅出WP8.1(Runtime)]Toast通知

    9.1 Toast通知 Toast通知是在屏幕最顶上弹出来的临时通知,是Windows Phone通用的弹出式短暂的通知,默认的系统消息都是采用Toast通知的形式,比如当你手机收到短信的时候,在手机 ...

  6. [深入浅出WP8.1(Runtime)]Windows Phone 8.1和Silverlight 8.1的区别

    1.2.2 Windows Phone 8.1应用程序模型 Windows Phone 8.1支持多种开发语言来开发应用程序,包括C#.VB.JavaScript和C++,那么本书的代码主要是采用C# ...

  7. [深入浅出WP8.1(Runtime)]Socket编程之UDP协议

    13.3 Socket编程之UDP协议 UDP协议和TCP协议都是Socket编程的协议,但是与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,也就是说其是不可靠的协议.UDP适用于一次只 ...

  8. [深入浅出WP8.1(Runtime)]网络编程之HttpClient类

    12.2 网络编程之HttpClient类 除了可以使用HttpWebRequest类来实现HTTP网络请求之外,我们还可以使用HttpClient类来实现.对于基本的请求操作,HttpClient类 ...

  9. [深入浅出WP8.1(Runtime)]应用实例——移动截图

    10.2应用实例——移动截图 移动截图例子是实现一个把一张图片的某个部分截取出来的功能,并且用户可以选定截取的图片区间.那个该例子会使用ManipulationDelta事件来实现对截取区间的选择.然 ...

随机推荐

  1. jQuery – 8.事件和事件参数

        事件 (*)JQuery中的事件绑定:$("#btn").bind("click",function(){}),每次都这么调用太麻烦,所以jQuery可 ...

  2. 重温WCF之会话Session(九)

    转载地址:http://blog.csdn.net/tcjiaan/article/details/8281782 每个客户端在服务器上都有其的独立数据存储区,互不相干,就好像A和服务器在单独谈话一样 ...

  3. 【JAVA正则表达式】

    一.String类. java.lang.Object |--java.lang.String 常用方法:  String replaceAll(String regex, String replac ...

  4. GoLang搞一个基本的HTTP服务

    慢慢和python的对应一下看看. package main import ( "fmt" "net/http" "strings" &qu ...

  5. HTML页面实现返回顶部效果 go to top

    1.首先导入jQuery插件. 2.js代码: $(window).scroll(function () { if($(window).scrollTop()>=100) { $(". ...

  6. JqueryEasyUI 解决IE下加载时页面错乱的问题 分类: JavaScript JqueryEasyUI 2014-09-20 09:50 545人阅读 评论(1) 收藏

    问题描述: 一直觉得jqueryeasyui在IE下的渲染效果不大好,尤其刚进入页面时的加载,页面会出现布局错乱,虽然是一闪而过,但是给用户的体验不好: 可以通过在页面onload时,增加一个遮罩层, ...

  7. 6-04使用SQL语句更新数据

    修改数据语法: UPDATTE 表名 SET 列名 =更新值 WHERE 更新条件 1:省略WHERE条件的更新: 更新性别: UPDATE  UserInfo SET Gender=1 三行受影响. ...

  8. csipsimple,linphone,webrtc比较

    转自: http://www.lxway.com/566299526.htm 最新要做一个移动端视频通话软件,大致看了下现有的开源软件 一) sipdroid1)架构sip协议栈使用JAVA实现,音频 ...

  9. 在source insight中集成astyle

    转自:http://www.cnblogs.com/xuxm2007/archive/2013/04/06/3002390.html 好吧,我有代码格式的强迫症,代码不整齐,我看的都头疼,之前一直喜欢 ...

  10. css 内联元素

    内联元素又名行内元素(inline element),和其对应的是块元素(block element),都是html规范中的概念.内联元素的显示,为了帮助理解,可以形象的称为“文本模式”,即一个挨着一 ...