WPF 精修篇 动态资源
原文:WPF 精修篇 动态资源
动态资源 使用 DynamicResource 关键字
静态 就是 StaticResource
原则上是 能用静态就用静态 动态会让前台界面压力很大~
动态资源引用 就是可以在后台改变资源 显示不同的样式 资源是一样的 就看关键字用什么
效果

-
<Window.Resources>
-
<LinearGradientBrush x:Key="RectFill" EndPoint="0.5,1" StartPoint="0.5,0">
-
<GradientStop Color="BurlyWood" Offset="0"/>
-
<GradientStop Color="White" Offset="1"/>
-
</LinearGradientBrush>
-
</Window.Resources>
-
<Grid>
-
<Rectangle Fill="{ DynamicResource RectFill}" HorizontalAlignment="Left" Height="76" Margin="85,70,0,0" Stroke="Black" VerticalAlignment="Top" Width="243">
-
-
</Rectangle>
-
<RadioButton x:Name="R" Content="R" HorizontalAlignment="Left" Margin="377,70,0,0" VerticalAlignment="Top" Click="R_Click"/>
-
<RadioButton x:Name="G" Content="G" HorizontalAlignment="Left" Margin="377,98,0,0" VerticalAlignment="Top" Click="G_Click"/>
-
<RadioButton x:Name="B" Content="B" HorizontalAlignment="Left" Margin="377,130,0,0" VerticalAlignment="Top" Click="B_Click"/>
-
-
</Grid>
-
private void R_Click(object sender, RoutedEventArgs e)
-
{
-
var bursh = Resources["RectFill"];
-
if (bursh is LinearGradientBrush)
-
{
-
LinearGradientBrush Ibursh = (LinearGradientBrush)bursh;
-
Ibursh = new LinearGradientBrush()
-
{
-
GradientStops = new GradientStopCollection()
-
{
-
new GradientStop(Colors.BurlyWood,0),
-
new GradientStop(Colors.Red,1)
-
-
}
-
};
-
Resources["RectFill"] = Ibursh;
-
}
-
-
}
-
-
private void G_Click(object sender, RoutedEventArgs e)
-
{
-
var bursh = Resources["RectFill"];
-
if (bursh is LinearGradientBrush)
-
{
-
LinearGradientBrush Ibursh = (LinearGradientBrush)bursh;
-
Ibursh = new LinearGradientBrush()
-
{
-
GradientStops = new GradientStopCollection()
-
{
-
new GradientStop(Colors.BurlyWood,0),
-
new GradientStop(Colors.Green,1)
-
-
}
-
};
-
Resources["RectFill"] = Ibursh;
-
}
-
-
}
-
-
private void B_Click(object sender, RoutedEventArgs e)
-
{
-
var bursh = Resources["RectFill"];
-
if (bursh is LinearGradientBrush)
-
{
-
LinearGradientBrush Ibursh = (LinearGradientBrush)bursh;
-
Ibursh = new LinearGradientBrush()
-
{
-
GradientStops = new GradientStopCollection()
-
{
-
new GradientStop(Colors.BurlyWood,0),
-
new GradientStop(Colors.Blue,1)
-
-
}
-
};
-
Resources["RectFill"] = Ibursh;
-
}
-
-
}
WPF 精修篇 动态资源的更多相关文章
- WPF 精修篇 管理资源字典
原文:WPF 精修篇 管理资源字典 样式太多 每个界面可能需要全局的样式 有没有肯能 WPF 中的样式 像Asp.net中 的CSS一样管理那 有的 有资源字典 BurshDictionary &l ...
- WPF 精修篇 静态资源
原文:WPF 精修篇 静态资源 在WPF中 如果设置好了一个控件样式或者矩形样式 如果Copy出一个新的 那么样式也会双份 比如 下面的矩形 我定义好了一个 Copy 以后 就出现一个新的 但是改变样 ...
- WPF 精修篇 依赖属性
原文:WPF 精修篇 依赖属性 依赖属性使用场景 1. 希望可在样式中设置属性. 2. 希望属性支持数据绑定. 3. 希望可使用动态资源引用设置属性. 4. 希望从元素树中的父元素自动继承属性值. 5 ...
- WPF 精修篇 数据触发器
原文:WPF 精修篇 数据触发器 数据触发器 可以使用Binding 来绑定控件 或者数据源 来触发相关动作 举栗子 <Window.Resources> <Style Target ...
- WPF 精修篇 属性触发器
原文:WPF 精修篇 属性触发器 属性触发器是通过 某个条件触发改变属性 通过无代码实现功能 <Style TargetType="{x:Type Label}"> ...
- WPF 精修篇 样式继承
原文:WPF 精修篇 样式继承 这个 是新知识 样式可以继承 <Style x:Key="TextBlockStyleBase" TargetType="{x:Ty ...
- WPF 精修篇 自定义控件
原文:WPF 精修篇 自定义控件 自定义控件 因为没有办法对界面可视化编辑 所以用来很少 现在实现的是 自定义控件的 自定义属性 和自定义方法 用VS 创建自定义控件后 会自动创建 Themes 文件 ...
- WPF 精修篇 用户控件
原文:WPF 精修篇 用户控件 增加用户控件 数据绑定还是用依赖属性 使用的事件 就委托注册一下 public delegate void ButtonClick(object b,EventArgs ...
- WPF 精修篇 DataGrid 筛选
原文:WPF 精修篇 DataGrid 筛选 DataGrid也可以分组 但是用的地方不多 就没写 筛选还是可以的 比如Datagrid数据量比较大 要做数据筛选 贴码 <DataGrid x: ...
随机推荐
- 3-10 Pandas 常用操作
1.构造数据 In [1]: import pandas as pd data=pd.DataFrame({'group':['a','a','a','b','b','b','c','c','c' ...
- MariaDB设置主从复制
主从复制包含两个步骤: 在 master 主服务器(组)上的设置,以及在 slave 从属服务器(组)上的设置. 配置主服务器 master 如果没有启用,则需要 激活二进制日志. 给 master ...
- 使用rider做为unity的代码编辑器
使用Rider做的编写Unity代码的IDE,记录一些与VS不相同的笔记 安装和设置方法: 我使用Rider 2019.1 + Unity3D 2018.3.4,在安装完Rider之后,在Unity中 ...
- React ToDolist增加功能
补充知识点1==>npm install prop-types 先安装参数校验包 在B C页面引入 import PropTypes from 'prop-types' //参数限制 // 验证 ...
- java中判断两个对象是否相等
package ceshi.com.job; import java.util.ArrayList; import java.util.Arrays; import java.util.List; p ...
- Photoshop cc 2019 下载链接
[安装环境]:win7/win8/win10 [64位下载] 百度网盘链接:pan.baidu.com/s/14vwkeez-jAx8WVkXXUgfPQ 提取码:797f
- Java+Selenium3方法篇21-webdriver处理浏览器多窗口切换
经过前面两篇文章的铺垫,我们这篇介绍,webdriver如何处理,一个浏览器上多个窗口之间切换的问题.我们先脑补这样一个测试场景,你在页面A点击一个连接,会在新的tab窗口打开页面B,这个时候,你在页 ...
- 文件上传-pubsec-文件上传大小限制
文件上传-pubsec-文件上传大小限制 Caused by: java.lang.IllegalArgumentException: ContextPath must start with '/' ...
- djangoORM 修改表结构/字段/外键操作
Django支持修改表结构 把max_length=64 改为60 再执行一遍 python manage.py makemigrations python manage.py migrate 如果是 ...
- 系统监控工具glances
glances是一款由python开发的系统监控工具,可以实时查看CPU.内存.网络.IO.进程.磁盘空间使用率的使用情况,并且支持三种运行模式,个人感觉比top命令使用更便捷: 安装glance ...