Silverlight4 動態改變界面的樣式


      最近看了下關於sl4動態改變界面的功能,在此做下記錄。

      首先,你要有個整體的樣式文件,像sl tools就提供了好幾種樣式,我使用的就是其中的

ShinyBlue.xaml文件(確保添加這個文件時,xaml代碼下面沒有波浪線)。

     在界面上放一些控件,看到時候樣式變了沒。然后放一個按鈕來觸發改變樣式事件。

    重點來了:

   

 

private   void  button1_Click( object  sender, RoutedEventArgs e)
        {
         
string  url = url  =   " SL;component/Assets/Themes/ShinyBlue.xaml " ; // 樣式地址
var themeUri  =   new  Uri(
                url, UriKind.Relative);
if  (Resources.MergedDictionaries.Count  >   0 )
            {
                Resources.MergedDictionaries.RemoveAt(
0 ); // 移除舊的樣式
            }



            var themeResource 
=  Application.GetResourceStream(themeUri);
            
using  (var stream  =  themeResource.Stream)
            {
                
using  (var reader  =   new  StreamReader(stream))
                {
                    var xamlText 
=  reader.ReadToEnd();
                    var dict 
=  XamlReader.Load(xamlText)  as  ResourceDictionary;
                    Resources.MergedDictionaries.Add(dict);
// 添加新的樣式。
                }
            }
}

上面的樣式文件是要放在sl端的。

 如果你覺得放在sl端比較大的話,那可以放在web端,在需要時進行下載,然后變換樣式。

 

 

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com