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

來源:互聯網
上載者:User

 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.