2010-09-16 116 views
0

我想爲我的Windows Phone 7應用程序定義一個主題,以便在應用程序啓動時應用,而不管由「設置」手機菜單設置的系統主題。如何才能做到這一點?windows phone 7:如何創建應用程序主題?

我在MSDN上看到Fill =「{StaticResource PhoneAccentBrush}」允許使用該畫筆的控件響應系統範圍的主題更改。我該如何做同樣的事情:允許控件從系統設置中獲取畫筆,而不是從我的應用程序設置中獲取畫筆?

我應該在哪裏放置這些設置,以便在我的應用程序的任何位置都可以訪問一個樣式設置文件?

回答

4

在Silverlight中沒有主題特定的API。你所擁有的是一個或多個資源詞典,你可以使用它們來定義一組適用於你的控件的樣式。

在Theme1.xaml文件

<Style x:Key="HeadingStyle" TargetType="{x:Type Label}"> 
    <Setter Property="Foreground" Value="Black"/> 
</Style> 

在Theme2.xaml文件:

<Style x:Key="HeadingStyle" TargetType="{x:Type Label}"> 
    <Setter Property="Foreground" Value="Red"/> 
</Style> 
在App.xaml中

(默認的主題或引用default.xaml文件):

<Application.Resources> 
    <Style x:Key="HeadingStyle" TargetType="{x:Type Label}"> 
    <Setter Property="Foreground" Value="blue"/> 
    </Style> 
</Application.Resources> 

改變當前的「主題」:

Application.Current.Resources = Application.LoadComponent(new Uri("Theme2.xaml", UriKind.RelativeOrAbsolute)); 

我現在沒有安裝RTM工具,所以我無法測試此代碼。

+0

你幾乎釘了它。根據文檔,如果明確修改受主題影響的控件屬性,則只能覆蓋系統主題。鏈接:http://msdn.microsoft.com/en-us/library/ff402557%28VS.92%29.aspx – 2010-09-19 00:55:12

+0

謝謝你的回答! – Manu 2010-09-19 11:02:41

相關問題