wp7樣式的關聯


最近幾個朋友(非IT行業的朋友)要買手機,我就問了一下:有考慮買wp7的嗎。朋友:不買,wp7的界面太丑了。

當時我聽了之后心里一下子涼了一大半。如果用戶都這樣想的話,wp7的命運真是悲劇啊。希望wp7的程序員多關注一下UI吧。用戶是看不到功能代碼的,如果UI進入不了他們的眼,那么何談進入他們的心呢。

siliverlight不是Winfrom,拖一個Button然后寫事件的方式去做應用是行不通的。

Metro也是個很不錯的UI方案,我也挺喜歡,但是我是不大會利用Metro,尤其是用微軟給提供的Button做應用(其它控件還算可以)。

前幾天寫了天氣預報的界面,里面樣式很多,並沒有和控件分離開來,所以顯得很冗余。畢竟那時候還不是很熟悉siliverlight樣式,所以只能這樣做。建議代價做界面要用Blend。

做過web的都知道DIV+CSS,給頁面元素關聯樣式有三種方式:

1.內聯樣式表:就是在每個元素里面寫style。優點就是靈活,給指定的元素添加樣式。缺點是重用性很差,如果大量的元素樣式相同的話,每個都要寫一遍,會讓重復代碼很多。

2.嵌入樣式表:在html頁面上寫一個<style></style> 代碼段,然后在里面寫樣式表,然后用相應的類選擇符或者是ID選擇符去給元素關聯樣式。優點是在很大程度上解決了樣式重用的問題。缺點是樣式很多時,還是會使這個頁面代碼很多,不便於分類。

3.外部樣式表:就是把嵌入樣式表<style></style> 代碼段里面的內容寫到一個獨立的.css文件里面。然后把所需要的樣式表文件關聯到相應的頁面去。

 

先上效果圖:

33

wp7里面對元素添加效果不僅僅只是樣式那么簡單,而且還會有視覺狀態。這里只寫樣式。

1.內聯樣式:

拖來個Button,你盡情得設置里面的屬性就可以了。或者是用Blend右邊的屬性管理器設置。image

2.嵌入樣式:

在<phone:PhoneApplicationPage.Resources>標簽內寫樣式,然后用控件去調用,代碼如下

   1:  <phone:PhoneApplicationPage.Resources>
   2:          <Style x:Key="ButtonStyle"  TargetType="Button">
   3:              <Setter Property="Content" Value="嵌入樣式"/>
   4:              <Setter Property="Height" Value="100" />
   5:              <Setter Property="Width" Value="200" />
   6:              <Setter Property="Margin" Value="50,170,0,0"/>
   7:              <Setter Property="Foreground" Value="Red" />
   8:              <Setter Property="Background" Value="Blue" />
   9:              <Setter Property="HorizontalAlignment" Value="Left" />
  10:              <Setter Property="VerticalAlignment" Value="Top" />
  11:          </Style>
  12:      </phone:PhoneApplicationPage.Resources>

 

Button控件調用:

<Button Style="{StaticResource ButtonStyle}"/>

3.外部樣式

首先添加外表樣式表文件

image

image

如果用Blend添加的話,會自動把這個資源字典引入到程序。

會自動在app.xaml里面添加如下代碼

   1:  <Application.Resources>
   2:          <ResourceDictionary>
   3:              <ResourceDictionary.MergedDictionaries>
   4:                  <ResourceDictionary Source="Styles/Style1.xaml"/>
   5:              </ResourceDictionary.MergedDictionaries>
   6:          </ResourceDictionary>
   7:      </Application.Resources>

如果不是用Blend的話需要自己去關聯。

也可以把這個資源文件之關聯到某一頁面。比如之關聯到MainPage.xaml那就只在本頁面的<phone:PhoneApplicationPage.Resources>部分添加如下代碼:

   1:  <ResourceDictionary>
   2:   
   3:              <ResourceDictionary.MergedDictionaries>
   4:   
   5:                  <ResourceDictionary Source="Styles/Style1.xaml"/>
   6:   
   7:              </ResourceDictionary.MergedDictionaries>
   8:   
   9:          </ResourceDictionary>

后台動態關聯資源文件並對控件綁定樣式。

   1:  ResourceDictionary resourceDictionary = new ResourceDictionary();
   2:  Application.LoadComponent(resourceDictionary, new Uri("/WindowsPhoneApplication1;component/Styles/Style2.xaml", UriKind.Relative));
   3:  Application.Current.Resources.MergedDictionaries.Add(resourceDictionary);
   4:  this.btn1.SetValue(Button.StyleProperty, Application.Current.Resources["ButtonStyle2"]);

 

源代碼下載地址http://download.csdn.net/detail/wildfeng04/4186707

我做的手機歸屬地查詢應用所有的樣式用的是第三種,外部樣式。除了央視之外還有視覺狀態。

下次的博文會介紹。

1

手機歸屬地查詢源代碼:http://www.cnblogs.com/wildfeng/archive/2012/03/21/2409174.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM