zoukankan      html  css  js  c++  java
  • WPF 动态更换样式文件

      ApplySkinFromMenuItem("Style/BigImgStyle.xaml", "Style/FileListStyle.xaml");

      //换肤
            void ApplySkinFromMenuItem(string source, string oldSources)
            {
                string skinDictPath = source;
                App app = Application.Current as App;
                app.ApplySkin(skinDictPath, oldSources);
            }

    ApplySkin(这个方法是写在Application文件中的)

       /// <summary>
            /// 换样式 (这个方法是写在Application文件中的)
            /// </summary>
            /// <param name="newPaths">要加入的新样式文件路径</param>
            /// <param name="oldxamls">要删除的老的样式文件路径</param>
            public void ApplySkin(string newPaths, string oldxamls)
            {
                Collection<ResourceDictionary> mergedDicts = base.Resources.MergedDictionaries;
                string[] ss = oldxamls.Split(',');
                if (ss.Length > 0)
                {
                    foreach (var path in ss)
                    {
                        if (mergedDicts.Count > 0 && path.Trim() != "")
                        {
                            foreach (var item in mergedDicts)
                            {
                                if (item.Source.OriginalString.Trim().EndsWith(path.Trim()))
                                {
                                    mergedDicts.Remove(item);
                                    break;
                                }
                            }
                        }
                    }
                }
                if (newPaths != "")
                {
                    try
                    {
                        string[] newss = newPaths.Split(',');
                        if (newss.Length > 0)
                        {
                            foreach (var item in newss)
                            {
                                Uri skinDictionaryUri = new Uri(item, UriKind.Relative);
                                ResourceDictionary skinDict = new ResourceDictionary();
                                //ResourceDictionary skinDict = Application.LoadComponent(skinDictionaryUri) as ResourceDictionary;
                                skinDict.Source = skinDictionaryUri;

                                mergedDicts.Add(skinDict);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("dsds:" + ex.Message);
                    }

                }


            }

  • 相关阅读:
    PostgreSQL Replication之第四章 设置异步复制(4)
    PostgreSQL Replication之第四章 设置异步复制(3)
    PostgreSQL Replication之第四章 设置异步复制(2)
    PostgreSQL Replication之第四章 设置异步复制(1)
    PostgreSQL Replication之第三章 理解即时恢复(4)
    Hdu3065 病毒侵袭持续中
    poj3974 Palindrome
    poj1204 Word Puzzles
    Hdu2222 Keywords Search
    Codeforce 633.C Spy Syndrome 2
  • 原文地址:https://www.cnblogs.com/zhaolili/p/5133996.html
Copyright © 2011-2022 走看看