Windows Phone開發(fā)(10):常用控件(上)
Windows Phone的控件有幾個(gè)來源,和傳統(tǒng)的桌面應(yīng)用程序開發(fā)或Web開發(fā)一樣,有默認(rèn)提供的控件和第三方開者發(fā)布的控件。一般而言,如果不是過于復(fù)雜的界面布 局,使用默認(rèn)控件就足矣。相比之下,Android SDK中盡管提供了許多可視化控件,但你會(huì)發(fā)現(xiàn),實(shí)際開發(fā)用到的并不多,而且很多控件完全只是擺設(shè),既沒有公開相應(yīng)的操作方法也沒有更多可用于開發(fā)者自行 處理的監(jiān)聽器(這里我習(xí)慣翻譯為監(jiān)聽器,在安卓里面沒有像C#那樣使用事件,而是new一個(gè)監(jiān)聽器,當(dāng)然原理是相似的)。
除了游戲開外,我們?cè)赪P上基本上是使用Silverlight,因此,WP的大部分控件都來自Silverlight(銀光)。
一、TextBlock控件。
這個(gè)控件的功用和Android里面的TextView一樣,無它就是用來顯示一些靜文本,當(dāng)然,這個(gè)靜態(tài)文本不是說我們不能修改,而只是一個(gè)相對(duì)詞,相 對(duì)于可以讓用戶進(jìn)行輸入的文本框控件而言的,沒什么,如果大家做過WinForm開發(fā),它就相當(dāng)于Label控件,如果你接觸過以前VC++中的MFC開 發(fā)的,也類似于Static文本控件。好了,廢話說多了,我們來看看例子吧。
- <TextBlock x:Name="txtBlock" Text="你好。"/>
對(duì),這樣我們就在頁(yè)面中聲明了一個(gè)TextBlock,并把上面顯示的文本文設(shè)置為“你好”。
對(duì)于如何聲明控件,我就不多說了,你可以使用設(shè)計(jì)視圖,直接從工具箱中拖放,然后在“屬性”窗口中進(jìn)行設(shè)置,這和傳統(tǒng)的WinForm開發(fā)差不多。
對(duì)于TextBlock控件,也許我們最常用的屬性有兩個(gè):
1、Text,不用多介紹了,當(dāng)然是顯示的文本內(nèi)容了。
2、FontSize,調(diào)整字體的大小。
下面我再通過一個(gè)例子來說一下TextBlock控件的高級(jí)使用方法,何為高級(jí)?哈,看了你就知道。
- <TextBlock x:Name="txtBlock" FontSize="42" TextWrapping="Wrap">
- 你好,<Bold>小黃</Bold>,<Italic>今天幾點(diǎn)起床?</Italic>
- </TextBlock>
(圖1)
上例中,我們看到,“你好”是正常顯示的,“小黃”是被加粗的,“今天幾點(diǎn)起床”是斜體。也就是說,在TextBlock內(nèi)部我們可以使用相關(guān)的文檔格式化標(biāo)記,使文本能以多
種形式展示。
再看一個(gè)例子。
- <TextBlock Grid.Row="2" FontSize="40" >
- 優(yōu)酷視頻<LineBreak/>土豆視頻
- </TextBlock>
這樣,我們就可把文本進(jìn)行換行。
(圖2)
下面再來看看Run元素的使用,因?yàn)槭菑腟ilverlight繼承過來,所以不一定所有標(biāo)記都有效,我們不妨多試試。
- <TextBlock Grid.Row="4" FontSize="40" TextWrapping="Wrap">
- <Run FontStyle="Italic"
- FontFamily="Tahoma"
- FontSize="65"
- Foreground="Orange">
- 荷塘月色
- </Run>
- </TextBlock>
(圖3)
二、Button控件。
這個(gè)家伙相信不用我來引見了,大家一最熟悉不過了,按鈕在開發(fā)中使用的頻率是灰常高的,而它用起來也灰常簡(jiǎn)單,關(guān)鍵是處理好它的單擊事件,就基本上完事了。
- <Button Content="Click Me" HorizontalAlignment="Left" Margin="58,68,0,0" Name="button1" VerticalAlignment="Top"
- Click="button1_Click"/>
如果你對(duì)WPF或Silverlight不是很了解,我這里簡(jiǎn)單說一下,
(圖4)
從上圖中我們看到,Button是從ContentControl中派生,也就是說,如果你要設(shè)置按鈕上顯示的文本,就應(yīng)當(dāng)設(shè)置它的Content屬性。
注意哦,Content屬性是object類型的,也就是,我們不僅僅可以設(shè)置文本作為按鈕的內(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>
運(yùn)行之后看看,是不是很有意思?
(圖5)
三、CheckBox控件。
這個(gè)東東更不用說了,看示例吧。
- <StackPanel Orientation="Vertical">
- <CheckBox Content="白菜" IsChecked="True"/>
- <CheckBox Content="梨子"/>
- <CheckBox Content="蘋果" IsChecked="False"/>
- <CheckBox Content="鮮花"/>
- </StackPanel>
(圖6)