欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2022-03-02 14:53:13
  原文地址:http://create.msdn.com/en-US/education/quickstarts/Working_with_Text_on...

 

原文地址: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!" />

效果如下图。

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

也可以在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>

结果如下图。

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

 

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

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

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

Text

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

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

Chat

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

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

URL

适合输入网页地址。

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

TelephoneNumber

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

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

EmailSmtpAddress

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

CurrencyAmount

适合货币输入。

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

除此之外还有更多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下特有的。】

 

来自博客园的aspnetx宋卫东