2013年2月24日 星期日

windows phone設置系統顏色


Windows Phone的一個特點是可以設置系統顏色,並體現在Live Title與各樣的APP介面,而PhoneGap並沒有提供相關的API可供呼叫,因此需要手動加入,以下是簡單的流程:

1. 寫個設置系統顏色的javascript function :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
// 設置系統顏色
function setSystemColor( accentBrushColor, backgroundBrushColor )
{
    if ( ON_DEVICE ) // 實機執行
    {
        systemBackChessColor = accentBrushColor; // 系統前景顏色
        systemBackColor = backgroundBrushColor; // 系統背景顏色
    }
    else // 非實機測試
    {
        systemBackChessColor = backChessColor;
        systemBackColor = backColor;
    }
}


2. 在 CordovaView.xaml.cs中加入設置系統顏色的 C# function :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
// 設置系統背景顏色和方塊顏色
public void SetSystemColor()
{
    SolidColorBrush accentBrush = (SolidColorBrush)Application.Current.Resources["PhoneAccentBrush"];
    String accenColor = "#" + accentBrush.Color.ToString().Substring(3);

    SolidColorBrush backgroundBrush = (SolidColorBrush)Application.Current.Resources["PhoneBackgroundBrush"];
    String backgroundColor = "#" + backgroundBrush.Color.ToString().Substring(3);

    //Debug.WriteLine("\naccenColor: " + accenColor );
    //Debug.WriteLine("\nbackgroundColor: " + backgroundColor);

    CordovaBrowser.InvokeScript( "setSystemColor", new String[2] { accenColor, backgroundColor }); // 設置跟系統相同的顏色
}


3. 在 GapBrowser_LoadCompleted() 中呼叫設置系統顏色的 C# function :

1
2
3
4
5
6
void GapBrowser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
    //CordovaBrowser.Opacity = 1;
    Debug.WriteLine("GapBrowser_LoadCompleted :: " );
    SetSystemColor(); // 設置系統背景顏色和色塊顏色
    SetDefaultLanguage(); // 設置預設語言


4. 設置大底完成,如此每次啟動程式,都能取得目前系統顏色,再依個人喜好條配。




沒有留言:

張貼留言