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

来源:互联网 发布:to:day软件 编辑:程序博客网 时间:2024/05/01 05:01

 

原文地址: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下特有的。】

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 502盖子粘到手上怎么办 口红粘在盖子上怎么办 玫瑰手杖永久错过了怎么办 手指沾到502胶水怎么办 我退款了货到了怎么办 世纪天成账号被盗什么也没绑怎么办 韩国电话卡不想用怎么办2018 汽车没有年检交警抓到怎么办 ios软件未受信任怎么办 淘宝开店被管理了怎么办 微店网络异常025怎么办 商家给买家返款转错了怎么办 淘宝号限制下单怎么办 淘宝退货单号填错了怎么办 淘宝买家申请退款不退货怎么办 不支持7天无理由怎么办 淘宝上不给退货怎么办 网购衣服买小了怎么办 淘宝上全球购买到假货怎么办 京东全球购税费怎么办 代购被海关税了怎么办 网上买猫被骗了怎么办 苏宁账号被冻结怎么办 九州娱乐提款未到账怎么办 法院拍卖后不足的余款怎么办 购车后余款没拿怎么办? 抵押房屋被执行后余款怎么办 苏宁无敌券过期怎么办 被亚马逊自营跟卖怎么办 苏宁易购绑定手机后解绑不了怎么办 手机qq注册号码忘了怎么办 原创头条号被限制推荐了怎么办 为什么打开app有广告怎么办 苹果手机浏览器总是弹出广告怎么办 手机上打开页面出现广告怎么办 电脑下面的任务栏变宽了怎么办 酷派手机总是出现广告怎么办 电脑弹出的热点新闻关闭不了怎么办 京东老是弹广告怎么办 电脑右下角出现无法显示网页怎么办 电脑右下角广告关不了怎么办