[翻译]WP7 QuickStart-第六篇-Windows Phone下文本的使用

 

原文地址:http://create.msdn.com/en-US/education/quickstarts/Working_with_Text_on_the_Windows_Phone

 

【译者注:这篇文章是翻译自微软官方的WP7 QuickStart的第六篇,讲述WP下的文本的使用。部分内容加入了自己的理解和表达习惯。而翻译此系列的主要目的一是为了练习英语,二是让自己作为一个BI开发者对WP7的开发有一个了解。部分翻译不当的地方望各位高人指出批评指正】

 

Windows Phone下的Silverlight提供了一些控件用来显示文本,其中带有一些属性来对文本进行格式化。在Silverlight下基于文本的控件有TextBlock,TextBox和PasswordBox。此篇主要介绍这些控件如何显示和输入文本。

 

其中包含下面的内容

TextBlock

TextBox

TextBox下的软键盘

PasswordBox

 

TextBlock

TextBlock在Windows Phone下主要显示只读的文本信息。可以通过它的Text属性来指定显示的文本。

下面的XAML 演示如何定义一个TextBlock控件并且设置其Text属性。

XAML

<TextBlock Text="Hello, world!" />

效果如下图。

clip_image001

也可以在TextBlock里显示更多的字符串,并且每个字符串都可以有不同的格式。通过Run元素就可以定义每个字符串的格式,并且通过LineBreak将其分隔。

下面的XAML演示在TextBlock中的文本用Run定义不同的格式,并且使用LineBreak将其分隔开。

XAML

<Grid>

<TextBlock FontFamily="Arial" Width="400" >

<LineBreak/>

<Run Foreground="Maroon" FontFamily="Courier New" FontSize="40">

Courier New 24

</Run>

<LineBreak/>

<Run Foreground="Teal" FontFamily="Times New Roman" FontSize="30" FontStyle="Italic">

Times New Roman Italic 18

</Run>

<LineBreak/>

<Run Foreground="SteelBlue" FontFamily="Verdana" FontSize="20" FontWeight="Bold">

Verdana Bold 14

</Run>

</TextBlock>

</Grid>

结果如下图。

clip_image002

 

TextBox

TextBox用来输入单行或者多行文本,其中的Text属性是其中的文本内容。在下面的实例中,有三个文本输入区域。当在第一个TextBox中输入,相同的文本就会出现在第二个TextBox中。这里是用到了TextChanged事件。第三个TextBox显示水印。实现水印效果可以通过字体的属性,比如Foreground和FontSize,还有一些事件,比如GotFocus和LostFocus。

在下面的在线实例中,单击第一个文本框然后输入一些内容可以看到运行的效果。

笔记:这个在线实例是用传统的Silverlight模拟的Windows Phone下的Silverlight效果。实际运行的效果跟在Windows Phone模拟器以及物理设备中的略有不同。

XAML

<StackPanel Background="Transparent">

<TextBlock Text="Type Text Here" />

<TextBox x:Name="ReadWriteTB" TextChanged="ReadWriteTB_TextChanged"

IsReadOnly="False" />

<TextBlock Text="Read Only TextBox" />

<TextBox x:Name="ReadOnlyTB" IsReadOnly="True" />

<TextBlock Text="Search Type TextBox" />

<TextBlock FontSize="17" TextWrapping="Wrap">

When you click inside the text box the watermark text is removed and the

cursor appears ready for input.

</TextBlock>

<TextBox x:Name="WatermarkTB" Text="Search"

Foreground="Gray" GotFocus="WatermarkTB_GotFocus"

LostFocus="WatermarkTB_LostFocus" />

</StackPanel>

C#

//The following method displays the text entered in ReadWriteTB in ReadOnlyTB.

private void ReadWriteTB_TextChanged(object sender, RoutedEventArgs e)

{

ReadOnlyTB.Text = ReadWriteTB.Text;

}

//The foreground color of the text in WatermarkTB is set to Magenta when WatermarkTB

//gets focus.

private void WatermarkTB _GotFocus(object sender, RoutedEventArgs e)

{

if (WatermarkTB.Text == "Search")

{

WatermarkTB.Text = "";

SolidColorBrush Brush1 = new SolidColorBrush();

Brush1.Color = Colors.Magenta;

WatermarkTB.Foreground = Brush1;

}

}

//The foreground color of the text in WatermarkTB is set to Blue when WatermarkTB

//loses focus. Also, if SearchTB loses focus and no text is entered, the

//text "Search" is displayed.

private void WatermarkTB _LostFocus(object sender, RoutedEventArgs e)

{

if (WatermarkTB .Text == String.Empty)

{

WatermarkTB.Text = "Search";

SolidColorBrush Brush2 = new SolidColorBrush();

Brush2.Color = Colors.Blue;

WatermarkTB.Foreground = Brush2;

}

}

 

TextBox下的软键盘

在Windows Phone下输入文本的主要方式就是通过在屏幕上的小键盘,也就是软键盘。当TextBox这样的可编辑内容的控件被激活的时候,软键盘就会从屏幕的下方滑入。当用户点击了编辑区域之外,滑动条或者返回按钮,它就会从屏幕底端滑出。假如设备有物理键盘的话,软键盘就会自动关闭。可以设置软键盘的外观,可以根据程序的上下文更容易的输入字符。比如,在输入邮政编码的时候,你只想看到数字键盘,这个时候就可以通过InputScope属性设置它。

下面列出了常用的软键盘,以及可以在XAML和代码中指定的InputScopeNameValue属性。

Default

默认的样式,输入句子的时候首字母会自动大写。

clip_image003

Text

适合用在文档或者电子邮件中。

clip_image004

Chat

适合用在短信,聊天界面以及各种社区客户端。

clip_image005

URL

适合输入网页地址。

clip_image006

TelephoneNumber

12键,适合输入电话号码。

clip_image007

EmailSmtpAddress

适合输入电子右键地址,自带@和.com键。

CurrencyAmount

适合货币输入。

clip_image008

除此之外还有更多60种模式,这里不做一一介绍。

下面的示例演示如何用XAML和C#给TextBox设置设置输入模式。

XAML

<TextBox Text="HelloWorld">

<TextBox.InputScope>

<InputScope>

<InputScopeName NameValue="Chat" />

</InputScope>

</TextBox.InputScope>

</TextBox>

C#

InputScope IPChat = new InputScope();

InputScopeName IPNChat = new InputScopeName();

IPNChat .NameValue= InputScopeNameValue.Chat;

IPChat.Names.Add(IPNChat);

TBChatWindow.InputScope = IPChat;

 

PasswordBox

用来输入密码,用户输入的密码显示为*所以是无法被看到的。通过Password属性就可以取出输入的密码,并且使用PasswordChar属性来指定替换密码的字符。

 

【译者注:此部分的内容基本上和传统Silverlight差不多,密码框有些不同,另对于软键盘的支持也是WP下特有的。】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值