2016-01-10 41 views
2

我有一個使用Caliburn.Micro框架的Windows Phone 8.1 Silverlight應用程序。如何將顏色代碼分組爲Windows Phone 8.1中的單個文件Silverlight應用程序

Atm我所有的顏色代碼都被硬編碼到他們使用的地方。

Foreground="#c8d75a" 

這意味着我的顏色代碼硬編碼了約150個地方在我的應用程序。

所以我想我會將所有顏色分組到一個文件中,然後在我的xaml頁面中引用顏色。

我做了很多谷歌搜索,他們都回答「使用資源目錄」,然後在我的xaml頁面中,我將能夠使用目錄中的變量,就像我與任何其他人一樣靜態resoruce

{StaticResource LightGreen} 

我的問題是我沒有任何模板稱爲資源目錄。所以我的問題是這樣的: 這甚至可以在Windows Phone 8.1 Silverlight應用程序中添加資源目錄嗎?如果不是,我應該用什麼呢?

謝謝你的時間。

回答

6

當然這是可能的。我不知道爲什麼你沒有ResourceDictionary的文件模板,但你可以自己創建一個。假設您在主項目中有一個名爲Resources的文件夾,那麼您需要創建一個帶有.xaml擴展名的文件,例如Constants.xaml。您可以在Visual Studio之外完成此操作,然後將該文件複製到您的項目中。

該文件的內容應該是這樣的:

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:system="clr-namespace:System;assembly=mscorlib"> 

    <!-- SOCIAL NETWORKS --> 
    <Color x:Key="FacebookColor">#3B5998</Color> 
    <Color x:Key="GoogleColor">#DB4A39</Color> 
    <Color x:Key="TwitterColor">#00A0D1</Color> 

    <SolidColorBrush x:Key="FacebookBrush" Color="{StaticResource FacebookColor}"/> 
    <SolidColorBrush x:Key="GoogleBrush" Color="{StaticResource GoogleColor}"/> 
    <SolidColorBrush x:Key="TwitterBrush" Color="{StaticResource TwitterColor}"/> 

    <!-- BOOLEANS --> 
    <system:Boolean x:Key="BoolTrue">True</system:Boolean> 
    <system:Boolean x:Key="BoolFalse">False</system:Boolean> 

    <!-- COLORS --> 
    <Color x:Key="LightGreen">#c8d75a</Color> 

    <!-- BRUSHES --> 
    <SolidColorBrush x:Key="LightGreenBrush" Color="{StaticResource LightGreen}"/> 
</ResourceDictionary> 

然後你需要包括創建ResourceDictionaryApp.xaml

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Resources/Constants.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

,或者如果你想包括字典在一個頁面:

<Page.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Resources/Constants.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Page.Resources> 
+0

是的感謝這工作,我剛剛創建一個ph一頁並粘貼你的代碼。非常感謝。 – user2408952

相關問題