Windows Phone開發(15):資源

來源:互聯網
上載者:User

活字印刷術是我國“四大發明”之一,畢昇在發明活字印刷術之後,他很快發現一個問題,隨著要印刷資料的不斷增加,要用到的漢字數目越來越多,於是,他必須尋找一種有效辦法去管理那些刻有漢字的立方體(暫且就叫立方體,其實的確是個立方體),所以,他就和助手們一起努力,為這些立方體進行記錄,有標識地放好,在印刷過程中用到哪些字,就直接取出來,不用了就放回去,既環保又方便。
這就是資源,水、空氣、陽光也是資源,煤、鐵礦物也是資源,只不過有些可再生,有些不可再生罷了。
何為資源?資源就是客觀存在的,當我們需要時可以拿來利用的一切可支配或可重新組合的東西,如人力資源、人脈資源等。
如果做過網頁,應該瞭解CSS是用來幹啥的,其實,我們今天要討論的資源,和CSS樣式表的概念基本一樣,就是把一些經常用到的東西儲存起來,可以供應用程式中不同地方重複調用,這樣我們就不用為每個控制項設定樣式,我們可以樣式儲存到資源清單,用到就取出來,不用重複定義。

下面看看這段XAML,上面有4個TextBlock,我現在希望每個TextBlock的字型字型大小為37.5,當然,簡單的值可以方便設定,如果值很複雜,如上一篇文章說的模板,那你就很痛苦了,要為每個控制項做一個模板。

<StackPanel Orientation="Vertical"><br /> <TextBlock Text="第一塊文本"/><br /> <TextBlock Text="第二塊文本"/><br /> <TextBlock Text="第三塊文本"/><br /> <TextBlock Text="第四塊文本"/><br /> </StackPanel>

怎麼做呢?因為字型大小為Double類型,所以首先要引入命名空間。怎麼做呢?因為字型大小為Double類型,所以首先要引入命名空間。

xmlns:sys="clr-namespace:System;assembly=mscorlib"

接著,在頁資源集合中定義一個字型大小資源,注意要設定key,每個資源都有唯一的鍵,應用程式是通過這個鍵來尋找對應的資源的。接著,在頁資源集合中定義一個字型大小資源,注意要設定key,每個資源都有唯一的鍵,應用程式是通過這個鍵來尋找對應的資源的。

<StackPanel Orientation="Vertical"><br /> <TextBlock Text="第一塊文本" FontSize="{StaticResource fontSize}" /><br /> <TextBlock Text="第二塊文本" FontSize="{StaticResource fontSize}" /><br /> <TextBlock Text="第三塊文本" FontSize="{StaticResource fontSize}" /><br /> <TextBlock Text="第四塊文本" FontSize="{StaticResource fontSize}" /><br /> </StackPanel>

 

資源的引用方式很簡單,放到一對大括弧中(擴充標記),StaticResource是指明是靜態資源,注意,在Silverlight中只能用靜態資源,如果是WPF,還有動態資源,空格後面就是資源的key,不要問我為什麼。

再看一例,有三個按鈕,我希望它們都擁有漸層背景色,水平靠左對齊,垂直頂端對齊,寬185,高50.

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"><br /> <Button Content="按鈕一" Height="72" Margin="10,10,0,0" Name="button1" /><br /> <Button Content="按鈕二" Height="72" Margin="10,92,0,0" Name="button2" /><br /> <Button Content="按鈕三" Height="72" Margin="10,174,0,0" Name="button3" /><br /> </Grid>

現在我只要在資源集合裡聲明一個樣式,並把它應用到每個按鈕上。

<phone:PhoneApplicationPage<br /> x:Class="ResSampleApp.Page2"<br /> xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"<br /> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"<br /> xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"<br /> xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"<br /> xmlns:d="http://schemas.microsoft.com/expression/blend/2008"<br /> xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"<br /> FontFamily="{StaticResource PhoneFontFamilyNormal}"<br /> FontSize="{StaticResource PhoneFontSizeNormal}"<br /> Foreground="{StaticResource PhoneForegroundBrush}"<br /> SupportedOrientations="Portrait" Orientation="Portrait"<br /> mc:Ignorable="d" d:DesignHeight="768" d:DesignWidth="480"<br /> shell:SystemTray.IsVisible="True"><br /> <phone:PhoneApplicationPage.Resources><br /> <Style x:Key="buttonStyle" TargetType="Button"><br /> <Setter Property="Background"><br /> <Setter.Value><br /> <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1"><br /> <GradientStop Color="Yellow" Offset="0"/><br /> <GradientStop Color="Red" Offset="1"/><br /> </LinearGradientBrush><br /> </Setter.Value><br /> </Setter><br /> <Setter Property="HorizontalAlignment" Value="Left"/><br /> <Setter Property="VerticalAlignment" Value="Top"/><br /> <Setter Property="Width" Value="185"/><br /> <Setter Property="Height" Value="50"/><br /> <Setter Property="BorderThickness" Value="0"/><br /> </Style><br /> </phone:PhoneApplicationPage.Resources></p><p> <Grid><br /> <Button Content="按鈕一" Height="72" Margin="10,10,0,0" Name="button1" Style="{StaticResource buttonStyle}" /><br /> <Button Content="按鈕二" Height="72" Margin="10,92,0,0" Name="button2" Style="{StaticResource buttonStyle}" /><br /> <Button Content="按鈕三" Height="72" Margin="10,174,0,0" Name="button3" Style="{StaticResource buttonStyle}" /><br /> </Grid></p><p></phone:PhoneApplicationPage>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.