Windows Phone開發(fā)(10):常用控件(上)
Windows Phone的控件有幾個來源,和傳統(tǒng)的桌面應用程序開發(fā)或Web開發(fā)一樣,有默認提供的控件和第三方開者發(fā)布的控件。一般而言,如果不是過于復雜的界面布 局,使用默認控件就足矣。相比之下,Android SDK中盡管提供了許多可視化控件,但你會發(fā)現(xiàn),實際開發(fā)用到的并不多,而且很多控件完全只是擺設,既沒有公開相應的操作方法也沒有更多可用于開發(fā)者自行 處理的監(jiān)聽器(這里我習慣翻譯為監(jiān)聽器,在安卓里面沒有像C#那樣使用事件,而是new一個監(jiān)聽器,當然原理是相似的)。
除了游戲開外,我們在WP上基本上是使用Silverlight,因此,WP的大部分控件都來自Silverlight(銀光)。
一、TextBlock控件。
這個控件的功用和Android里面的TextView一樣,無它就是用來顯示一些靜文本,當然,這個靜態(tài)文本不是說我們不能修改,而只是一個相對詞,相 對于可以讓用戶進行輸入的文本框控件而言的,沒什么,如果大家做過WinForm開發(fā),它就相當于Label控件,如果你接觸過以前VC++中的MFC開 發(fā)的,也類似于Static文本控件。好了,廢話說多了,我們來看看例子吧。
- <TextBlock x:Name="txtBlock" Text="你好。"/>
對,這樣我們就在頁面中聲明了一個TextBlock,并把上面顯示的文本文設置為“你好”。
對于如何聲明控件,我就不多說了,你可以使用設計視圖,直接從工具箱中拖放,然后在“屬性”窗口中進行設置,這和傳統(tǒng)的WinForm開發(fā)差不多。
對于TextBlock控件,也許我們最常用的屬性有兩個:
1、Text,不用多介紹了,當然是顯示的文本內(nèi)容了。
2、FontSize,調(diào)整字體的大小。
下面我再通過一個例子來說一下TextBlock控件的高級使用方法,何為高級?哈,看了你就知道。
- <TextBlock x:Name="txtBlock" FontSize="42" TextWrapping="Wrap">
- 你好,<Bold>小黃</Bold>,<Italic>今天幾點起床?</Italic>
- </TextBlock>
(圖1)
上例中,我們看到,“你好”是正常顯示的,“小黃”是被加粗的,“今天幾點起床”是斜體。也就是說,在TextBlock內(nèi)部我們可以使用相關的文檔格式化標記,使文本能以多
種形式展示。
再看一個例子。
- <TextBlock Grid.Row="2" FontSize="40" >
- 優(yōu)酷視頻<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控件。
這個家伙相信不用我來引見了,大家一最熟悉不過了,按鈕在開發(fā)中使用的頻率是灰常高的,而它用起來也灰常簡單,關鍵是處理好它的單擊事件,就基本上完事了。
- <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類型的,也就是,我們不僅僅可以設置文本作為按鈕的內(nèi)容,只要能被顯示的東東,我們都可以賦給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)