[深刻浅出WP8.1(Runtime)]文本框(TextBox)

4.4 文本框(TextBox)

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

<TextBox .../>微信

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

(1)支持回车键换行测试

由于TextBox控件是一个文本输入的控件,因此它除了对自动换行的支持以外,还此次还回车键换行的输入。不过在默认的状况下,TextBox控件是不支持回车键换行的,若是须要支持回车键换行,须要把把AcceptsReturn属性设置为true。spa

(2)键盘的类型code

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

textBox1.InputScope = new InputScope();htm

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

(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

相关文章
相关标签/搜索