WPF X:Shared概述 - CSDN博客
原文:WPF X:Shared概述 - CSDN博客 一、含义 X:Shared用于指定请求资源时创建实例的两种方式。 X:Shared = “true”(默认):表示所有请求都是共享同一个实例。一般不显示指定。 X:Shared = “false”:表示每次请求都创建一个新的实例。 二、使用 1、x:Shared = “true”的情况 该例子用于展示所有Button的颜色一起变化的情况。 (1) 在新建的Window上拖放三个Button。Button1和Button2是用于展示颜色的变化。如下图所示: 代码如下: (2) 在Window级别创建一个SolidColorBrush资源。代码如下: 注意其中加了x:Shared = “true”,表示所有对该资源的请求,都使用其创建的唯一实例。其实如果是true的话,可以省略。 (3) 在buttonA和buttonB上通过DynamicResource方式引用该资源。如果通过StaticResource方式引用,那么运行时的更改变不能反映到界面上。 代码如下: (4) 在第三个按钮上添加事件处理程序,这段程序里做的是获取button1按钮上属性Background中的资源,并把它改成Green。代码如下: (5) 最后界面如下: 点击变色按钮前: 点击变色按钮后: 2、使用x:Shared = “false” 该实例展示只有当前获取到的Background对应的按钮颜色才会改变。 该实例大部分同上例相同,下面只展示其不同部分。 (1) 声明资源,将x:Shared设置为”false”。代码如下: 注意其中x:Shared=”false”,表示对该资源的每次请求,都将创建一个新的实例与需要的元素相对应。 (2) 界面浏览 点击变色按钮前: 点击变色按钮后: 三、总结 通过以上两个例子,应该对x:Shared这个属性有了大致的了解。 1、 x:Shared = “true”,对每次请求的资源都使用同个实例。 2、 x:Shared = “false”,对每次请求的资源都创建一个新的实例。按照MSDN说法:使用的其中一种情况为:把继承自FrameworkElement或FrameworkContentElement的派生类做为资源,这样就可以达到在一个集合中多次引用同个资源。 四、注意 根据MSDN的文档描述有下面几个情况需要注意: 1、 包含使用x:Shared属性的项的ResourceDictionary必须是已编译的。这个ResourceDictionary不能放在松散的Xaml中或用于主题中。 2、 包含使用x:Shared属性的项的ResourceDictionary不能嵌套在另一个ResourceDictionary中。
![]()

 1
<Window x:Class="XSharedTrue.Window1"
 2
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 3
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 4
    Title="Window1" Height="334" Width="404">
 5
    
 6
    <Grid>
 7
        <Button Height="23" HorizontalAlignment="Left" Margin="69,78,0,0" Name="button1" VerticalAlignment="Top" Width="75">Button1</Button>
 8
        <Button Height="23" HorizontalAlignment="Right" Margin="0,78,96,0" Name="button2" VerticalAlignment="Top" Width="75">Button2</Button>
 9
        <Button Height="23" Margin="141,0,166,102" Name="button3" VerticalAlignment="Bottom">变色</Button>
10
    </Grid>
11
</Window>
12
2 
3 brush.Color = Colors.Green;
4 ![]()
![]()
![]()
![]()
WPF X:Shared概述 - CSDN博客的更多相关文章
- WPF 用代码调用dynamic resource动态更改背景 - CSDN博客
		
原文:WPF 用代码调用dynamic resource动态更改背景 - CSDN博客 一般dynamic resoource通常在XAML里调用,如下范例: <Button Click=&qu ...
 - Python爬取CSDN博客文章
		
0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.win ...
 - XAML的命名空间 - CSDN博客
		
原文:XAML的命名空间 - CSDN博客 一个最简单的XAML例子 <Window x:Class="WpfApplication1.MainWindow" xmlns=& ...
 - 利用爬虫爬取指定用户的CSDN博客文章转为md格式,目的是完成博客迁移博文到Hexo等静态博客
		
文章目录 功能 爬取的方式: 设置生成的md文件命名规则: 设置md文件的头部信息 是否显示csdn中的锚点"文章目录"字样,以及下面具体的锚点 默认false(因为csdn中是集 ...
 - 神一样的CSDN博客排名规则
		
本文转载于:http://blog.csdn.net/littletigerat/article/details/17448521 神一样的CSDN博客排名规则 一.引言 年. 马年CSDN博客,毫无 ...
 - 梦想还是要有的-纪念正式成为csdn博客专家暨年中总结
		
csdn博客:http://blog.csdn.net/tuzongxun 我的csdn历程(坚持总会有收获): 一年零三个月之前,2015年3月3日,我在csdn写下第一篇技术博客,只是记录了一 ...
 - 从csdn博客搬家过来,请多关照!
		
之前一直在csdn博客,也写了不少关于java的文章,主要是学习java上的一些问题.想通过这种方式来加深对问题的认知,同时也可以帮助到志同道合的人,一起在编程的道路上共进,共勉.
 - JAVA爬虫挖取CSDN博客文章
		
开门见山,看看这个教程的主要任务,就去csdn博客,挖取技术文章,我以<第一行代码–安卓>的作者为例,将他在csdn发表的额博客信息都挖取出来.因为郭神是我在大学期间比较崇拜的对象之一.他 ...
 - 原创内容搬家到csdn博客啦~
		
以后原创的文章就发布在csdn博客啦: http://blog.csdn.net/aceyan0718 这里就用来当作一个网络笔记本吧,转载些优质的内容
 
随机推荐
- nginx源代码分析--ngx_http_optimize_servers()函数
			
这个函数做了连部分工作:1)以port为入口点 将实用的信息存放到hash表内 2)调用ngx_http_init_listening()函数 对port进行监听 1. 在ngx_http_core_ ...
 - Django会话cookie&session
			
任务描述:实现登录和退出 1.项目结构 2.源代码 urls.py from django.conf.urls import url from django.contrib import admin ...
 - 【u012】数字游戏
			
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 小W发明了一个游戏,他在黑板上写出了一行数字a1,a2,-an,然后给你m个回合的机会,每回合你可以从 ...
 - SQLServer重建索引
			
Use [数据库名称]Go DECLARE @DBCCString NVARCHAR(1000)DECLARE @TableName VARCHAR(100)DECLARE Cur_Index CUR ...
 - Android的NDK开发(2)————利用Android NDK编写一个简单的HelloWorld
			
1.Android NDK简介 NDK全称为native development kit本地语言(C&C++)开发包.而对应的是经常接触的Android-SDK,(software devel ...
 - VS关于 _CRT_SECURE_NO_WARNINGS 警告说明
			
在VS中调用 strcpy.strcat 等函数时会提示 _CRT_SECURE_NO_WARNINGS 警告.原因是这些函数不安全.可能会造成内存泄露等. 所以建议採用带_s的函数,如strcpy_ ...
 - 为什么 ["1", "2", "3"].map(parseInt) 返回 [1,NaN,NaN]?
			
在 javascript 中 ["1","2","3"].map(parseInt) ,2,3] 却是 [1,NaN,NaN]? 我们首先回 ...
 - 【a501】算24点
			
Time Limit: 1 second Memory Limit: 32 MB [问题描述] 几十年前全世界就浒一种数字游戏,至今仍有人乐此不疲.在中国我们把这种游戏称为"算24点&quo ...
 - 【BZOJ 1005】[HNOI2008]明明的烦恼(化简的另一种方法)
			
[题目链接]:http://www.lydsy.com/JudgeOnline/problem.php?id=1005 [题意] [题解] 题目和题解在上一篇; 这里 对 [(m^(n-2-tot)) ...
 - 推荐:一个写的相当好的介绍C++单元测试框架Google Test (gtest) 教程
			
原文来自:http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 虽然有点晚了,还是一口气读完了全部文章.作者言简意赅和明快的风格 ...