WPF窗口颜色变更方法

WPF开发工具中有一种常用实现方法,就是窗口的操作。我们将会在这篇文章中为大家实现WPF窗口颜色的变更,希望对大家有所帮助。#t#

专注于为中小企业提供成都网站设计、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业上虞免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

WPF窗口颜色目标:

动态变更窗口的底色(当然,可以扩展为其他元素的样式)

WPF窗口颜色变更思路:

创建两个资源文件(Resource Dictionary),一个用来存放默认样式(Default.xaml),一个用来存放其他样式(HotHot.xaml);

在需要变更样式的窗体中(本例中为:WinWords),使用动态样式(... Style="{DynamicResource styleBcakground}")

在Application类中(方便调用),添加一个应用样式的公共方法(ApplySkin)

在主窗体中(本例是在WinWords窗体中通过按钮点击事件)调用Application中应用样式方法(ApplySkin)

在本例中,WinWords窗体启动时,自动调用了ApplySkin方法来应用默认的样式(Default)

OK,WPF窗口颜色代码如下:

 
 
 
  1. < HOME_DIR>\Resources\Skins
    \Default.xaml  
  2. < !-- Background Style --> 
  3. < Style x:Key="styleBackground"> 
  4. < Setter Property="Control.Background"> 
  5. < Setter.Value> 
  6. < LinearGradientBrush StartPoint=
    "0,0.5" EndPoint="1,0.5" Opacity="0.5"> 
  7. < GradientStop Color="LightSkyBlue"
     Offset="0" /> 
  8. < GradientStop Color=
    "WhiteSmoke" Offset="0.5" /> 
  9. < GradientStop Color="Light
    SkyBlue" Offset="1" /> 
  10. < /LinearGradientBrush> 
  11. < /Setter.Value> 
  12. < /Setter> 
  13. < /Style> 
  14. < HOME_DIR>\Resources\Skins\HotHot.xaml  
  15. < !-- Background Style --> 
  16. < Style x:Key="styleBackground"> 
  17. < Setter Property="Control.Background"> 
  18. < Setter.Value> 
  19. < LinearGradientBrush StartPoint=
    "0.5,0" EndPoint="0.5,1"> 
  20. < GradientStop Color="#50000000" 
    Offset="0.5" /> 
  21. < GradientStop Color="#ff999999" 
    Offset="1" /> 
  22. < /LinearGradientBrush> 
  23. < /Setter.Value> 
  24. < /Setter> 
  25. < /Style> 
  26. < HOME_DIR>\WinWords.xaml  
  27. < Grid Style="{DynamicResource 
    styleBackground}"> 
  28. < HOME_DIR>\WinWords.xaml.cs  
  29. public WinWords()  
  30. {  
  31. InitializeComponent();  
  32. this.ApplySkin("Default");  
  33. }  
  34. private void ApplySkin(string 
    pstrDictPath)  
  35. {  
  36. string skinDictPath = @".
    \Resources\Skins\" + pstrDictPath 
    + @".xaml";  
  37. Uri skinDictUri = new Uri(skinDict
    Path, UriKind.Relative);  
  38. MyCcApp app = Application.Current 
    as MyCcApp;  
  39. app.ApplySkin(skinDictUri);  
  40. }  
  41. private void btnTestSkining_Click
    (object sender, RoutedEventArgs e)  
  42. {  
  43. this.ApplySkin("HotHot");  
  44. }  
  45. < HOME_DIR>\MyCcApp.xaml.cs  
  46. public void ApplySkin(Uri 
    skinDictionaryUri)  
  47. {  
  48. ResourceDictionary skinDict =
     Application.LoadComponent(skin
    DictionaryUri) as ResourceDictionary;  
  49. Collection< ResourceDictionary> 
    mergedDicts = base.Resources.
    MergedDictionaries;  
  50. if (mergedDicts.Count > 0)  
  51. {  
  52. mergedDicts.Clear();  
  53. }  
  54. mergedDicts.Add(skinDict);  

上面介绍的内容就是WPF窗口颜色的变更实现方法。

分享题目:WPF窗口颜色变更方法
浏览路径:http://www.shufengxianlan.com/qtweb/news28/94778.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联