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);
                    }

                }


            }

  • 相关阅读:
    mac地址绑定
    解决php函数json_encode转换后中文被编码为unicode
    json格式转数组注意事项
    leetcode[93] Restore IP Addresses
    leetcode[92] Reverse Linked List II
    leetcode[91] Subsets II
    leetcode[90] Decode Ways
    leetcode[89] Merge Sorted Array
    leetcode[88] Gray Code
    leetcode[87] Partition List
  • 原文地址:https://www.cnblogs.com/zhaolili/p/5133996.html
Copyright © 2011-2022 走看看