日期:2014-05-17 浏览次数:20905 次
开发windows Phone程序的时候,有时候会想要用具体某种的主题,比如说浅色主题,那么,如果一个拥有深色主题的手机安装了不就搞笑了,所以我
探索了下如果自定义程序的主题
第一步,C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Design 下面有相应的主题文件,主要有System.Windows.xaml和ThemeResources.xaml
把这两个文件拷贝到你的项目中去,比如说你要白色背景青绿色提醒色的话,就在lightlime下面拷贝这两个文件
第二步,在App.xaml的resources里面添加
<ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="System.Windows.xaml"/>
            </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
第三步,在app.xaml.cs里面添加
InitializeComponent();
// 这一句为添加句
this.MergeCustomColors();
// Phone-specific initialization
InitializePhoneApplication();
以及添加相应方法
private void MergeCustomColors()
        {
            var dictionaries = new ResourceDictionary();
            string source = String.Format("/BingImageSearch;component/CustomTheme/ThemeResources.xaml");
            var themeStyles = new ResourceDictionary { Source = new Uri(source, UriKind.Relative) };
            dictionaries.MergedDictionaries.Add(themeStyles);
            ResourceDictionary appResources = App.Current.Resources;
            foreach (DictionaryEntry entry in dictionaries.MergedDictionaries[0])
            {
                SolidColorBrush colorBrush = entry.Value as SolidColorBrush;
                SolidColorBrush existingBrush = appResources[entry.Key] as SolidColorBrush;
                if (existingBrush != null && colorBrush != null)
                {
                    existingBrush.Color = colorBrush.Color;
                }
            }
        }
这样就可以定义了,还有更强的就是,你可以通过edit上面的两个文件,自己定义想要的效果