Windows Phone7主題與樣式以及資料繫結

來源:互聯網
上載者:User
  • 使用者可以客戶化主題

    • 例如可以選擇亮或者灰暗的背景
    • 有10中佈景主題色彩(accent colors)可供選擇
  • silverlight可以自動檢測到主題
    • 應用程式自動應用使用者選擇的主題
    • 開發人員可以客戶化具體的控制項並覆蓋主題的方案
  • 對於Silverlight控制項的樣式,我們可以看到一張圖:

    其中紅色部分就是傳說中的樣式,而具體的樣式定義是在

    這樣一個路徑下的一個ThemeResources.xaml,在同目錄下的另一個檔案System.Windows.xaml定義了silverlight for windows phone標準控制項的模板

  • 資料繫結

        • 資料繫結為silverlight程式提供了一種簡單的資料呈現與互動的方式,使得呈現與程式邏輯分離
        • 一旦建立綁定關係,UI和資料對象可以自動同步資料
        • 綁定方式:

          下面還是跟林永堅老師的例子一樣,通過滑動Silder控制項來改變TextBlock的文字大小;找到TextBlock的屬性fontsize

        • 選擇應用資料繫結之後就會彈出另一個選擇對話方塊

          選擇Slider1就可以了,Path選擇VAlue,這樣一個簡單的綁定就完成了,被綁定的元素的fontsize就綁定到了slider的value,資料繫結模式為OneTime

        • 資料繫結模式分三種:

          • One Time目標控制項屬性只更新一次,以後的會被忽略掉
          • One Way資料對象的值會被同步到目標控制項的屬性,但是目標控制項屬性的改變不會更新到資料對象中
          • Two Way目標控制項的屬性和資料對象的值相互更新
        • 繼承one way和two way繫結資料對象必須繼承與InotifyPropertyChanger
      • 上面的資料繫結是綁定到一個UI元素上,並不是說只能綁定到UI上,因為可以綁定到所有的CLR對相聲行,我們還可以綁定到自訂的類上,首先建立一個PostcodeClass,因為我們要用到雙向繫結模式,所以需要繼承借口INotifyPropertyChanged
        using System;using System.Net;using System.Windows;using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Ink;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Shapes;using System.ComponentModel;namespace PostCodeManager{    public class PostCodeClass:INotifyPropertyChanged    {        public event PropertyChangedEventHandler PropertyChanged;        private int postcode;        public int PostCode        {            get            {                return postcode;            }            set            {                postcode = value;                address = PostCodeQuery.Instance.GetAddressByPostCode(postcode);                if (PropertyChanged != null)                {                    PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Address"));                }            }        }        public string address = "木有找到";        public string Address        {            get            {                return address;            }            set            {                address = value;            }        }    }}

        類 定義好了,接下來就是在Xaml檔案裡使用了,第一步添加名稱空間,然後把這個類作為靜態資源的形式引進來如:

     這樣就可以使用了,使用方法如下:

     第一個紅框說的是把TextBlock的文字屬性綁定到PostcodeClass的PostCode屬性上,而且Mode=TwoWay,第二個Textblock的文字屬性綁定到PostcodeClass的Address屬性上,這樣就表示當這個TextBlock的Text發生改變的時候,它就會自動的把更改同步到他的資料對象裡,資料對象就會把Address更新到第二個TextBlock;

     

  源碼下載

相關文章

聯繫我們

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