Windows Phone的控制項有幾個來源,和傳統的傳統型應用程式開發或Web開發一樣,有預設提供的控制項和第三方開者發布的控制項。一般而言,如果不是過於複雜的介面布局,使用預設控制項就足矣。相比之下,Android SDK中儘管提供了許多可視化控制項,但你會發現,實際開發用到的並不多,而且很多控制項完全只是擺設,既沒有公開相應的操作方法也沒有更多可用於開發人員自行處理的監聽器(這裡我習慣翻譯為監聽器,在安卓裡面沒有像C#那樣使用事件,而是new一個監聽器,當然原理是相似的)。
除了遊戲開外,我們在WP上基本上是使用Silverlight,因此,WP的大部分控制項都來自Silverlight(銀光)。
一、TextBlock控制項。
這個控制項的功用和Android裡面的TextView一樣,無它就是用來顯示一些靜文本,當然,這個靜態文本不是說我們不能修改,而只是一個相對詞,相對於可以讓使用者進行輸入的文字框控制項而言的,沒什麼,如果大家做過WinForm開發,它就相當於Label控制項,如果你接觸過以前VC++中的MFC開發的,也類似於Static文本控制項。好了,廢話說多了,我們來看看例子吧。
<TextBlock x:Name="txtBlock" Text="你好。"/>
對,這樣我們就在頁面中聲明了一個TextBlock,並把上面顯示的文本文設定為“你好”。
對於如何聲明控制項,我就不多說了,你可以使用設計檢視,直接從工具箱中拖放,然後在“屬性”視窗中進行設定,這和傳統的WinForm開發差不多。
對於TextBlock控制項,也許我們最常用的屬性有兩個:
1、Text,不用多介紹了,當然是顯示的常值內容了。
2、FontSize,調整字型的大小。
下面我再通過一個例子來說一下TextBlock控制項的進階使用方法,何為進階?哈,看了你就知道。
<TextBlock x:Name="txtBlock" FontSize="42" TextWrapping="Wrap"> 你好,<Bold>小黃</Bold>,<Italic>今天幾點起床?</Italic> </TextBlock>
(圖1)
上例中,我們看到,“你好”是正常顯示的,“小黃”是被加粗的,“今天幾點起床”是斜體。也就是說,在TextBlock內部我們可以使用相關的文檔格式化標記,使文本能以多
種形式展示。
再看一個例子。
<TextBlock Grid.Row="2" FontSize="40" > 優酷視頻<LineBreak/>馬鈴薯視頻 </TextBlock>
這樣,我們就可把文本進行換行。
(圖2)
下面再來看看Run元素的使用,因為是從Silverlight繼承過來,所以不一定所有標記都有效,我們不妨多試試。
<TextBlock Grid.Row="4" FontSize="40" TextWrapping="Wrap"> <Run FontStyle="Italic" FontFamily="Tahoma" FontSize="65" Foreground="Orange"> 荷塘月色 </Run> </TextBlock>
(圖3)
二、Button控制項。
這個傢伙相信不用我來引見了,大家一最熟悉不過了,按鈕在開發中使用的頻率是灰常高的,而它用起來也灰常簡單,關鍵是處理好它的單擊事件,就基本上完事了。
<Button Content="Click Me" HorizontalAlignment="Left" Margin="58,68,0,0" Name="button1" VerticalAlignment="Top" Click="button1_Click"/>
如果你對WPF或Silverlight不是很瞭解,我這裡簡單說一下,
(圖4)
從中我們看到,Button是從ContentControl中派生,也就是說,如果你要設定按鈕上顯示的文本,就應當設定它的Content屬性。
注意哦,Content屬性是object類型的,也就是,我們不僅僅可以設定文本作為按鈕的內容,只要能被顯示的東東,我們都可以賦給Content屬性,不信?試試吧。
<Button HorizontalAlignment="Left" Margin="58,68,0,0" Name="button1" VerticalAlignment="Top" Click="button1_Click"> <Button.Content> <Ellipse Height="76" Width="125"> <Ellipse.Fill> <LinearGradientBrush StartPoint="0,0" EndPoint="1,1"> <GradientStop Color="Yellow" Offset="0.12"/> <GradientStop Color="MediumVioletRed" Offset="1"/> </LinearGradientBrush> </Ellipse.Fill> </Ellipse> </Button.Content> </Button>
運行之後看看,是不是很有意思?
(圖5)
三、CheckBox控制項。
這個東東更不用說了,看樣本吧。
<StackPanel Orientation="Vertical"> <CheckBox Content="白菜" IsChecked="True"/> <CheckBox Content="梨子"/> <CheckBox Content="蘋果" IsChecked="False"/> <CheckBox Content="鮮花"/> </StackPanel>
(圖6)