博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF整理--动态绑定到Logical Resource
阅读量:5930 次
发布时间:2019-06-19

本文共 2347 字,大约阅读时间需要 7 分钟。

原文:

What happens if we replace a

specific resource? Would that be reflected in all objects using the resource? And if not, can we
bind to the resource dynamically?”

接上篇博文,如果我们需要在C#代码中动态替换某个logical resource,我们该如何做呢?

如,Window的Resources属性赋值如下:

Button Click事件中Replace Window的key为"brush1"的Resources

private void OnReplaceBrush(object sender, RoutedEventArgs e)        {            var brush = new LinearGradientBrush();            brush.GradientStops.Add(new GradientStop(Colors.Pink, 0.2));            brush.GradientStops.Add(new GradientStop(Colors.Blue, 0.5));            brush.GradientStops.Add(new GradientStop(Colors.Violet, 0.8));                        this.Resources["brush1"] = brush;        }

点击按钮,程序没有任何反应,可以通过DynamicResource这个markup extension实现。

Run the application and click on the button. You'll notice nothing happens. Now

change the StaticResource markup extension to DynamicResource on the
Rectangle:”

程序运行如下:

点击Button后:

附XAML和C#代码:

View Code
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;namespace DynamicallyBindingToALogicalResource{    ///     /// Interaction logic for MainWindow.xaml    ///     public partial class MainWindow : Window    {        public MainWindow()        {            InitializeComponent();        }        private void OnReplaceBrush(object sender, RoutedEventArgs e)        {            var brush = new LinearGradientBrush();            brush.GradientStops.Add(new GradientStop(Colors.Pink, 0.2));            brush.GradientStops.Add(new GradientStop(Colors.Blue, 0.5));            brush.GradientStops.Add(new GradientStop(Colors.Violet, 0.8));                        this.Resources["brush1"] = brush;        }    }}
View Code

 

转载地址:http://mlktx.baihongyu.com/

你可能感兴趣的文章
HTML vs XHTML vs DHTML
查看>>
Ubuntu下JDK7安装全过程并调试第一个带包的java程序
查看>>
backbone(二)视图
查看>>
LeetCode-Minimum Window Substring
查看>>
【Linux 系统编程】shell 流程控制Loop和引号(三)
查看>>
MySQL定时备份脚本
查看>>
mybatis 事务管理
查看>>
使用IDEA创建JFinal3.0官方Demo
查看>>
常规复制文本框内容的脚本
查看>>
//根据域名获取对应的ip地址
查看>>
Eclipse创建一个Maven Web项目
查看>>
redis 五种数据类型的使用场景
查看>>
Google云端数据库:Google Cloud SQL
查看>>
RecyclerView 梳理:点击&长按事件、分割线、拖曳排序、滑动删除
查看>>
数据中心的自动运维之路
查看>>
我刚开始认识的python!
查看>>
Maven - Eclipse使用SVN(subclipse)同步Maven项目的小技巧
查看>>
驰骋工作流引擎表单设计控件-关系类控件-明细表(2)
查看>>
怎样将io.ReadCloser转换成string
查看>>
Oracle中的Rank()函数(注明:本文是我对两篇博文进行整合而来的,下面有相关的链接)...
查看>>