Windows Phone 8.1中如何重載系統預設資源

來源:互聯網
上載者:User

標籤:windows phone 8.1   重載系統主題色   重載系統資源   修改progressbar的前景色彩for   

在應用設計過程中,我們總是設計好應用各塊的布局和顏色的分配。當然這隻是我們的一廂情願,當我們真正開始

CD的時候,這才發現預想總是很美好的,實際操作起來確實有些難度。當然對於經驗老道的程式員來說,這點阻礙

並不算什麼。

正如題目所說,微軟已經給我們設定了各種各樣的系統預設資源,特別在是對於控制項的一些屬性,有的時候我們可以

直接定義屬性來覆蓋掉,而有的時候我們定義了屬性依然毫無作用,這個時候我們就需要重載它的預設主題值。


好了,上面廢話一大堆,下面就讓我們來看看到底有多少預設的佈景主題資源:

這裡以ProgressBar為例,因為對於這個控制項,你一廂情願的設定它的foreground和background值好像並不起作

用,它還是它,並不會那麼乖就聽你的命令。

首先在ProgressBar的設定選項卡中調出Foreground屬性,點擊它的設定選項,然後你會看到它提供給你多種設定的

方法,這裡我們將滑鼠移到系統資源上面。


你會發現會跳出很多很多的系統定義資源,上下滾動查看,乖乖,確實是蠻多的。所以說在今後如果不知道系統資源

定義的key值,你就可以這麼做。


知道了系統預設資源以及如何查看,那麼接下來就要重載它了。這裡依舊是拿ProgressBar控制項為例。

我要把ProgressBar的Foreground設定成Green,而這邊我要重載的系統預設佈景主題資源是

ProgressBarIndeterminateForegroundThemeBrush這個系統資源。當然如果你不知道具體是哪個,對於這個控制項的

系統預設資源定義並不多,你可以一個一個試試,不行就去MSDN查一下具體是哪個也行。

步驟一:

在項目中建立一個資源字典,重載佈景主題資源,如下:

<ResourceDictionary    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"    xmlns:local="using:RedefineProgressBarColor">        <ResourceDictionary.ThemeDictionaries>        <ResourceDictionary x:Key="Default">            <x:String x:Key="ProgressBarIndeterminateForegroundThemeBrush">Green</x:String>        </ResourceDictionary>    </ResourceDictionary.ThemeDictionaries>    </ResourceDictionary>

步驟二:

然後在App.xaml中包含這個資源字典,如下:

<Application    x:Class="RedefineProgressBarColor.App"    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"    xmlns:local="using:RedefineProgressBarColor">    <Application.Resources>        <ResourceDictionary>            <ResourceDictionary.MergedDictionaries>                <ResourceDictionary Source="RedefineDictionary.xaml"></ResourceDictionary>            </ResourceDictionary.MergedDictionaries>        </ResourceDictionary>    </Application.Resources>    </Application>

步驟三:

在頁面拖進來一個ProgressBar控制項,運行一下就能發現它的Foreground變成了你設定的Green,而原來你如果不重

載這個系統資源屬性,那麼Foreground預設值就不一定是Green了。而如果你不重載,只是重複設定它的Foreground

值,那麼它不會理會你,依然顯示系統預設的資源屬性。



以上就是本次部落格的主要內容。這裡要補充三點:

1.對於上述說法,有些人可能有一些疑問,你說系統預設主題的顏色到底是什麼呢。很好,這個問題要這麼

看,Foreground顏色(前景色彩)是和你的手機設定的主題色是一致的,而對於很多其他的控制項,很多問題都是出在這個

手機主題色上面的。所以我們的手機主題色就是預設的主題色了,而因為每個人用手機的習慣不一樣,所以為了應用

的統一性,這才需要我們自行設定。

具體如下所示:

              


2.上面對於樣式資源的申明和綁定設定,只是其中的一種方法,還有其他很多種方法,這次部落格中的樣式屬性設定是

對之前一篇部落格的補充。

之前一篇部落格: win8,win8.1應用中產生顯示button和button背景圖片的三,四種方法以及改變元素樣式的四種方法


3.這裡我沒有設定ProgressBar的Background,一來大家可以具體自行嘗試,舉一反三;二來我認為毫無必要,因為

它本身應該是透明的,如果非要設定的話就會突出那一塊顏色,毫無美感而言。

Windows Phone 8.1中如何重載系統預設資源

相關文章

聯繫我們

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