原文:WPF 精修篇 动态资源

动态资源 使用 DynamicResource 关键字

静态 就是 StaticResource

原则上是 能用静态就用静态 动态会让前台界面压力很大~

动态资源引用 就是可以在后台改变资源 显示不同的样式  资源是一样的 就看关键字用什么

效果


  1. <Window.Resources>
  2. <LinearGradientBrush x:Key="RectFill" EndPoint="0.5,1" StartPoint="0.5,0">
  3. <GradientStop Color="BurlyWood" Offset="0"/>
  4. <GradientStop Color="White" Offset="1"/>
  5. </LinearGradientBrush>
  6. </Window.Resources>
  7. <Grid>
  8. <Rectangle Fill="{ DynamicResource RectFill}" HorizontalAlignment="Left" Height="76" Margin="85,70,0,0" Stroke="Black" VerticalAlignment="Top" Width="243">
  9. </Rectangle>
  10. <RadioButton x:Name="R" Content="R" HorizontalAlignment="Left" Margin="377,70,0,0" VerticalAlignment="Top" Click="R_Click"/>
  11. <RadioButton x:Name="G" Content="G" HorizontalAlignment="Left" Margin="377,98,0,0" VerticalAlignment="Top" Click="G_Click"/>
  12. <RadioButton x:Name="B" Content="B" HorizontalAlignment="Left" Margin="377,130,0,0" VerticalAlignment="Top" Click="B_Click"/>
  13. </Grid>

  1. private void R_Click(object sender, RoutedEventArgs e)
  2. {
  3. var bursh = Resources["RectFill"];
  4. if (bursh is LinearGradientBrush)
  5. {
  6. LinearGradientBrush Ibursh = (LinearGradientBrush)bursh;
  7. Ibursh = new LinearGradientBrush()
  8. {
  9. GradientStops = new GradientStopCollection()
  10. {
  11. new GradientStop(Colors.BurlyWood,0),
  12. new GradientStop(Colors.Red,1)
  13. }
  14. };
  15. Resources["RectFill"] = Ibursh;
  16. }
  17. }
  18. private void G_Click(object sender, RoutedEventArgs e)
  19. {
  20. var bursh = Resources["RectFill"];
  21. if (bursh is LinearGradientBrush)
  22. {
  23. LinearGradientBrush Ibursh = (LinearGradientBrush)bursh;
  24. Ibursh = new LinearGradientBrush()
  25. {
  26. GradientStops = new GradientStopCollection()
  27. {
  28. new GradientStop(Colors.BurlyWood,0),
  29. new GradientStop(Colors.Green,1)
  30. }
  31. };
  32. Resources["RectFill"] = Ibursh;
  33. }
  34. }
  35. private void B_Click(object sender, RoutedEventArgs e)
  36. {
  37. var bursh = Resources["RectFill"];
  38. if (bursh is LinearGradientBrush)
  39. {
  40. LinearGradientBrush Ibursh = (LinearGradientBrush)bursh;
  41. Ibursh = new LinearGradientBrush()
  42. {
  43. GradientStops = new GradientStopCollection()
  44. {
  45. new GradientStop(Colors.BurlyWood,0),
  46. new GradientStop(Colors.Blue,1)
  47. }
  48. };
  49. Resources["RectFill"] = Ibursh;
  50. }
  51. }

WPF 精修篇 动态资源的更多相关文章

  1. WPF 精修篇 管理资源字典

    原文:WPF 精修篇 管理资源字典 样式太多  每个界面可能需要全局的样式 有没有肯能 WPF 中的样式 像Asp.net中 的CSS一样管理那 有的 有资源字典 BurshDictionary &l ...

  2. WPF 精修篇 静态资源

    原文:WPF 精修篇 静态资源 在WPF中 如果设置好了一个控件样式或者矩形样式 如果Copy出一个新的 那么样式也会双份 比如 下面的矩形 我定义好了一个 Copy 以后 就出现一个新的 但是改变样 ...

  3. WPF 精修篇 依赖属性

    原文:WPF 精修篇 依赖属性 依赖属性使用场景 1. 希望可在样式中设置属性. 2. 希望属性支持数据绑定. 3. 希望可使用动态资源引用设置属性. 4. 希望从元素树中的父元素自动继承属性值. 5 ...

  4. WPF 精修篇 数据触发器

    原文:WPF 精修篇 数据触发器 数据触发器 可以使用Binding 来绑定控件 或者数据源 来触发相关动作 举栗子 <Window.Resources> <Style Target ...

  5. WPF 精修篇 属性触发器

    原文:WPF 精修篇 属性触发器 属性触发器是通过  某个条件触发改变属性 通过无代码实现功能 <Style TargetType="{x:Type Label}"> ...

  6. WPF 精修篇 样式继承

    原文:WPF 精修篇 样式继承 这个 是新知识 样式可以继承 <Style x:Key="TextBlockStyleBase" TargetType="{x:Ty ...

  7. WPF 精修篇 自定义控件

    原文:WPF 精修篇 自定义控件 自定义控件 因为没有办法对界面可视化编辑 所以用来很少 现在实现的是 自定义控件的 自定义属性 和自定义方法 用VS 创建自定义控件后 会自动创建 Themes 文件 ...

  8. WPF 精修篇 用户控件

    原文:WPF 精修篇 用户控件 增加用户控件 数据绑定还是用依赖属性 使用的事件 就委托注册一下 public delegate void ButtonClick(object b,EventArgs ...

  9. WPF 精修篇 DataGrid 筛选

    原文:WPF 精修篇 DataGrid 筛选 DataGrid也可以分组 但是用的地方不多 就没写 筛选还是可以的 比如Datagrid数据量比较大 要做数据筛选 贴码 <DataGrid x: ...

随机推荐

  1. iOS中Category和Extension 原理详解

    (一)Category .什么是Category? category是Objective-C .0之后添加的语言特性,别人口中的分类.类别其实都是指的category.category的主要作用是为已 ...

  2. Invalid utf8mb4 character string: '"'

    将CSV格式数据导入 mysql,报错: load data infile 'f:/nmg.csv' into table nmg fields terminated by ',' optionall ...

  3. Windows 下 pycharm 创建Django 项目【用虚拟环境的解释器】

    1.  背景 我在 Windows 下的 pycharm  直接创建 全新 Django  项目 会  pip 和其他报错 ,暂时解决不了,另外后续的多个项目只需要一套python 环境, 所以可以 ...

  4. sqlalchemy(2)

    orm介绍 orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为 ...

  5. mac os下切换pip3国内源并安装requests库

    在使用Python的时候,经常会用到pip来安装模块,但是默认的下载源实在是特别慢,经常install的时候还会因为速度的原因直接报错,因此我们可以选择将下载源更改为国内的,这样就可以提高我们的下载速 ...

  6. stack栈、heap堆的说明图

    上面的两幅图是stm32系列的,但是基本原理可以通用的.

  7. Tcp与Http

    TCP协议对应传输层,而HTTP协议对应应用层.Http协议是建立在TCP协议基础之上的.当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求.Http会通过TCP建立起一个到服务器的连接通 ...

  8. 论文阅读笔记六十四: Architectures for deep neural network based acoustic models defined over windowed speech waveforms(INTERSPEECH 2015)

    论文原址:https://pdfs.semanticscholar.org/eeb7/c037e6685923c76cafc0a14c5e4b00bcf475.pdf 摘要 本文研究了利用深度神经网络 ...

  9. 使用ES6 Class封装的IndexDB 操作类,并实现模糊搜索

     封装如下: indexDBOperate.js export class IndexDBOperate { db = null // 数据库实例 databaseName = null // 数据库 ...

  10. 调试经验分享-让自己的电脑充当WI-Fi模块,用来抓取连接Wi-Fi模块APP上的通信数据

    需求 手头有了厂家的APP和Wi-Fi模块 在已经知道APP是通过TCP连接Wi-Fi模块(8266), 同时也知道了连接的端口号的 情况下如何知道厂家的APP发送给Wi-Fi模块的数据 打开自己的笔 ...