[翻译]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!" />
效果如下图。
也可以在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>
结果如下图。
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
默认的样式,输入句子的时候首字母会自动大写。
Text
适合用在文档或者电子邮件中。
Chat
适合用在短信,聊天界面以及各种社区客户端。
URL
适合输入网页地址。
TelephoneNumber
12键,适合输入电话号码。
EmailSmtpAddress
适合输入电子右键地址,自带@和.com键。
CurrencyAmount
适合货币输入。
除此之外还有更多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宋卫东
上一篇: 5G的标准与技术需求