标记扩展一般含有 {} 符号

x:Type 传入操作数据类型

x:Null 空值

通过例子看下具体:

(前台XAML代码)

<Window x:Class="WpfApplication1.MainWindow" x:ClassModifier="public"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:sys="clr-namespace:System;assembly=mscorlib"xmlns:local="clr-namespace:WpfApplication1"Title="MainWindow" Height="350" Width="525"><Window.Resources><Style x:Key="{x:Type local:UCButton}" TargetType="Button"><Setter Property="Width" Value="80"/><Setter Property="Height" Value="30" /><Setter Property="FontFamily" Value="Comic Sans MS" /><Setter Property="Foreground" Value="Blue"/></Style>        </Window.Resources><Grid><local:UCButton myType="{x:Type Button}" Style="{x:Null}"  Margin="83,140,340,141" Content="Button 类型"    /><local:UCButton myType="{x:Type Window}"  Margin="305,140,118,141"  Content="Window 类型"   /><local:UCButton myType="{x:Type TextBlock}"  Margin="195,140,228,141" Content="TextBlock 类型"  /></Grid>
</Window>

(后台C#代码 ,UCButton.cs)

 public class UCButton:Button{public Type myType{get;set;}     //传入类型/// <summary>/// 重写点击事件/// </summary>protected override void OnClick(){base.OnClick();//所有控件基类,反射生成对象FrameworkElement element = Activator.CreateInstance(this.myType) as FrameworkElement;if (element != null){MessageBox.Show(element.GetType().Name);    //显示对应类型
            }}}

上面用到地方有两处,

1.页面资源样式共享,目标对象UCButton,然后 Style="{x:Null}",不用于当前按钮。

2.传入类型不同,点击显示不同。

效果图:

x:Array 数组源对象

 <ListBox BorderBrush="AliceBlue" BorderThickness="2"  Width="80" ><ListBox.ItemsSource>            <x:Array Type="sys:String"><sys:String>X</sys:String><sys:String>A</sys:String><sys:String>M</sys:String><sys:String>L</sys:String></x:Array></ListBox.ItemsSource>
</ListBox>

x:Static

引用静态变量

public static string WindowText = "静态变量";

  <Button  Width="80" Height="30" Content="{x:Static local:MainWindow.WindowText}"/>

转载于:https://www.cnblogs.com/linsage/archive/2012/10/02/2710446.html

X命名空间-标记扩展相关推荐

  1. wpf中xaml的类型转换器与标记扩展

    wpf中xaml的类型转换器与标记扩展 原文:wpf中xaml的类型转换器与标记扩展 这篇来讲wpf控件属性的类型转换器 类型转换器 类型转换器在asp.net控件中已经有使用过了,由于wpf的界面是 ...

  2. WPF - 自定义标记扩展

    在使用WPF进行编程的过程中,我们常常需要使用XAML的标记扩展:{Binding},{x:Null}等等.那么为什么WPF提供了XAML标记扩展这一功能,我们又如何创建自定义的标记扩展呢.这就是本文 ...

  3. 第十章:XAML标记扩展(二)

    访问静态成员 IMarkupExtension最简单和最有用的实现之一封装在StaticExtension类中. 这是原始XAML规范的一部分,因此它通常出现在带有x前缀的XAML中. StaticE ...

  4. WPF学习:4.类型转换和标记扩展

    在上一章,主要介绍了Border和Brush,这一章主要介绍下类型转换和标记扩展.相关代码链接如下: http://files.cnblogs.com/keylei203/4.WPFSampleDem ...

  5. [No0000130]WPF 4.5使用标记扩展订阅事件

    自从我上次写到关于标记扩展的时候已经有一段时间了...... Visual Studio 11 Developer Preview的发布给WPF带来了一些新功能,让我有理由再次使用它们.我要在这里讨论 ...

  6. 2.6 wpf标记扩展

    1.什么是标记扩展?为什么要有标记扩展? 标记扩展是扩展xmal的表达能力 为了克服现存的类型转换机制存在的 常用的标记扩展有如下: x:Array 代表一个.net数组,它的子元素都是数组元素.它必 ...

  7. 第十章:XAML标记扩展(三)

    资源词典 Xamarin.Forms还支持第二种共享对象和值的方法,虽然这种方法比x:静态标记扩展稍微有点开销,但它更通用 - 因为所有东西 - 共享对象和使用的可视元素 它们 - 可以用XAML表示 ...

  8. dw重新定义html标记,扩展DW:自定义第三方标签解析

    扩展 Dreamweaver:自定义第三方标签的解析 因为最近一直在做 Dreamweaver 插件的开发,中文的资料非常少,自己英文又差,查看英文资料的时候不由头昏脑胀.迫不得已把其中一些重要的内容 ...

  9. PHP5.6对命名空间的扩展,use可以导入函数与常量空间

    php版本 > 5.60 1.解决命名冲突 2.导入类.函数.常量 3.赋予别名 test1.php namespace Demo1; class test1 { private $name = ...

最新文章

  1. python画饼图-python画饼图的多种方式
  2. sql调用web服务
  3. win10内核linux,windows 10中发布完整的Linux内核
  4. ASP.NE的缓存技术提高Web站点的性能
  5. c ++ stl_通过分配另一个列表的所有元素来创建列表| C ++ STL
  6. servlet源码查看
  7. delphi tpanel 内凹效果_别墅装修公司前十名|别墅装修效果图|现代精致简约
  8. 八皇后时间复杂度_九章算法 | N皇后问题
  9. Centos如何通过yum安装php7
  10. redis新数据类型-HyperLogLog
  11. 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_15-MongoDb入门-用户...
  12. html和css的编程规范,Bootstrap CSS编码规范
  13. java开发自学手册 pdf_Java项目开发实例自学手册 PDF_IT教程网
  14. 血族群机器人_我的女仆机器人
  15. bit、Byte、KB、MB、GB互相转换的关系
  16. 给图片加水印最简单的方法
  17. 「游戏建模」3DMAX节点材质编辑器详解
  18. 转贴与JUNSANSI(大小写转换函数Oracle)
  19. 蜂窝移动的架构 以及省电的方法
  20. nvidia xavier平台无PD控制器USB接口调试

热门文章

  1. mongodb书籍_我为什么放弃MySQL,选择了MongoDB?看到这个数据你就会明白了
  2. 实现文件中名词的统计计数_Python中的统计数据展示
  3. 07-netty之Socket
  4. 1.1.0-简介-P2-分布式系统的一些基本概念
  5. 【ambari】Ambari Rest api 使用
  6. 【Elasticsearch】Elasticsearch 优化写入流程实现NRT近实时(filesystem cache,refresh)
  7. 【Guava】Guava Cache的refresh和expire刷新机制
  8. 95-134-105-源码-维表-维表优化
  9. 【Kafka】报错:Error while fetching metadata with correlation id 1 : {topic_lcc=LEADER_NOT_AVAILABLE}
  10. drools 7.x DSL领域语言入门