- 浏览: 51788 次
- 性别:
- 来自: 厦门
文章分类
最新评论
二、x名称空间中的标记扩展
标记扩展(Markup Extension)实际上就是一些MarkupExtension类直接或者间接的派生类,在x名称空间中就存在这样一些类,所以常称它们为x名称空间内的标记扩展。
下面我们来看一下常用的标记扩展吧!
1、x:Type 从字面上开,x:Type的值应该是一个数据类型的名称。一般情况下,我们在编程中操作的是数据类型的实例或者是实例的引用,但是有时候我们也会用到数据类型本身。下面我们还是来看一个例子吧!
首先创建一个Button的派生类:
class MyButton:Button { public Type UserWindowType {get; set; } protected override void OnClick( { base.OnClick(); Window win = Activator.CreateInstance(this.UserWindowType) as Window; if(win != null) win.ShowDialog(); }
在该类中存在一个Type类型的属性,即UserWindowType,此时你需要将一种数据类型当做值赋给它。同时在该类中重写了父类的OnClick方法,此时可以像父类那样激活Click时间,还会创建UserWindowType所存储类型的一个实例。
<Window x:Class="WpfApplication.Window1" xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml Title="Window1" Width="200" Height="170"> <StackPanel Background="LightBlue"> <TextBox /> <TextBox /> <Button Content="确认" /> </StackPanel> </Window>
此时,我们将自定义按钮添加到窗口中,并且把Window1作为数据类型复制给自定义按钮的UserWindowType属性。
<Window x:Class="WpfApplication.Window2" xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml Title="Window2" Width="300" Height="300"> <StackPanel> <local:MyButton Content="Show" UserWindowType="{x:Type TypeName=local:Window1}" /> </StackPanel> </Window>
这就是x:Type的用法了!
2、x:Null 该标记扩展的作用是将一个空值显示的赋给一个属性。我们知道在C#中用null表示空值,那么在xaml中就用x:Null表示空值了。同样让我们来看一个例子:
<Window.Resource> <Style TargetType="Button"> <Setter Property="Background" Value="LightBlue" /> </Style> </Window.Resource> <StackPanel> <Button Content="Button1" /> <Button Content="Button2" /> <Button Content="Button3"/> <Button Content="Button4" Style="{x:Null}" /> </StackPanel>
以上代码的运行效果是,前三个Button的背景色均为浅蓝色,而最后一个button为默认颜色。知道x:Null的用法了吧!
3、x:Array 该Attribute的作用就是通过它的Items属性向使用者报了一个类型已知的ArrayList实例,ArrayList内成员的类型有x:Array的Type指明。下面我们一个例子来说明吧!
<ListBox> <ListBox.ItemsSource> <x:Array Type="sys:String"> <sys:String>1</sys:String> <sys:String>2</sys:String> <sys:String>3</sys:String> </x:Array> </ListBox.ItemsSource> </ListBox>
运行程序,你就知道效果了!
4、x:Static 是一个很常用的标记扩展,它的主要作用是使用数据类型中的Static成员。主要用于程序的国际化支持了。同样用例子说话:
public class Chinese { public static string btnSure = "确认"; } public class English { public static string btnSure = "OK"; }
根据选择不同的语言,使其展现内容的语言不同
<Button Content="{x:Static ocal:Chinese.btnSure}"
三、XAML指令元素
x:Code 主要用于在xaml中写入C#代码
发表评论
-
获取WPF所有控件的模板内容
2013-04-03 15:13 10621. 首先创建XMAL文件 <Windo ... -
委托回调函数的妙用(c# code )
2013-04-03 15:14 1462//person类 public class ... -
DynamicResource与StaticResource的区别
2013-02-20 14:28 0DynamicResource与StaticRes ... -
依赖属性--WPF
2013-02-20 14:27 0/// <summary> / ... -
简单的上传图片
2013-02-20 14:26 0<%@ Page Title="" ... -
C#获取文件夹下所有文件
2013-02-20 14:25 0string fileInfo = string.Empty ... -
如何将input type="file"显示的"浏览" 变成英文的?
2013-02-20 14:25 0解决方法: 方法一:使用英文Windows系统(这 ... -
asp.net mvc 2.0相关的一些内容
2013-02-20 14:24 01.搜索用到ViewTemp[]的时候,要用COOKIE去 ... -
WPF datagrid 弹出右键菜单时先选中该项
2013-02-20 14:23 0privatevoid datagrid_Previ ... -
显示动态的大小写提示框
2013-02-20 14:18 0function detectCapsLock(event) ... -
C# Action<T> 使用
2013-02-20 14:18 0在使用 Action<T> ... -
字符串SubCutString
2013-02-20 14:15 789public static string SubCutStr ... -
正则表达式-关于字符在100以内的字
2013-02-20 14:15 1194^.{0,100} $ 关于字符在100以内的字 ... -
WPF,TextBlock ,ToolTip 显示
2013-02-20 14:14 1212<TextBlock Text="{Bind ... -
后台运行点击事件
2013-02-20 14:13 662button.RaiseEvent(new Route ... -
为你解惑之WPF经典9问详解 .
2013-01-08 15:20 1254第0问:能否简单介绍一 ... -
WPF中DataGrid的使用 .
2013-01-08 15:21 1680DataGrid是WPF中的数据显 ... -
WPF中TreeView的使用 .
2013-01-08 15:21 2214不管是在窗体程序开发还是在web应用程序开发中,大家都知道树这 ... -
浅谈WPF中x名称空间(一) .
2012-04-13 13:22 1133不知道各位同行在创建第一个WPF应用程序时,由编译器自动 ... -
C#正则表达式
2012-04-13 12:41 866(1)“@”符号符下两ows表研究室的火热,当晨在“@”虽然并 ...
相关推荐
【压缩包子文件的文件名称列表】中仅有 "[WPF]JJDown" 这一项,这意味着压缩包内包含的是WPF应用程序的主体部分,可能包括可执行文件、资源文件、配置文件等。用户解压后,很可能是直接运行这个文件来启动JJDown应用...
WPF 24小时自学教程 Teach.Yourself.WPF.in.24.Hour
在本文中,我们将深入探讨如何在Windows Presentation Foundation (WPF) 应用程序中实现远程桌面功能,重点是使用AxInterop.MSTSCLib.dll和Interop.MSTSCLib.dll这两个组件。这两个组件是Microsoft Terminal ...
[专业WPF用户界面控件].Actipro.WPF.Studio.v11.1.0541.Incl.Keygen-Lz0 激活码!!!!!!!!!!!!
**WPF Extended.Wpf.Toolkit加载界面Demo** WPF(Windows Presentation Foundation)是.NET框架的一部分,用于构建具有丰富图形、多媒体和数据绑定功能的桌面应用程序。在开发WPF应用时,我们常常需要为用户提供一...
在本文中,我们将深入探讨如何使用WPF(Windows Presentation Foundation)和Vlc.DotNet.Wpf库来封装一个自定义的视频播放器。WPF是.NET Framework中的一个UI框架,提供了丰富的图形渲染和用户交互能力。而Vlc....
《WPF深入浅出》是一本专注于Windows Presentation Foundation(WPF)技术的书籍,由国内作者撰写,确保了内容的准确性和本地化适应性。WPF是微软.NET Framework中的一个关键组件,它提供了构建富客户端应用程序的...
WPF.Themes.ThemeManager.ApplyTheme(Application.Current, Properties.Settings.Default.Themes);//读取设置界面主题配置信息 即可使所有常用的控件主题变成所选择的主题,无需在每个窗体里修改样式。 减少了很...
C#、WPF使用技巧,实战应用开发小系统参考资料,源码参考。经测试可运行。 详细介绍了一些WPF框架的各种功能和模块,以及如何使用WPF进行GUI开发、网络编程和跨平台应用开发等。 适用于初学者和有经验的开发者,能够...
**Xceed.WPF.Toolkit库详解** Xceed.WPF.Toolkit是一个强大的WPF(Windows Presentation Foundation)扩展库,由Xceed Software公司开发。这个库为开发者提供了许多预构建的UI控件和功能,使得在构建现代、美观且...
wpfx.org-Notepad.rar
LoadingIndicators.WPF, WPF加载指示器的集合 LoadingIndicators.WPF LoadingIndicators.WPF 是 8个用于WPF的动画加载指示器,与 MahApps.Metro 兼容。样式弧线弧形环双弹跳FlipPlane脉冲响铃三点
WPF HelixToolkitWPF 中文手册 HelixToolkitWPF中文手册.pdf
《Xceed.Wpf.AvalonDock:一个强大的WPF文档管理库》 Xceed.Wpf.AvalonDock是一款专门用于Windows Presentation Foundation (WPF) 应用程序的库,它提供了一种高度可定制和灵活的文档和工具窗口管理解决方案。这个...
DevExpress.Wpf.Bars.v9.2.dll.VisualStudio.De DevExpress.Wpf.Bars.v9.2.Expression.Design.d DevExpress.Wpf.Bars.v9.2.VisualStudio.Design DevExpress.Wpf.Bars.v9.2.xml DevExpress.Wpf.Carousel....
文档中的内容详细介绍了使用Prism进行WPF应用程序开发的各个方面。 首先,文档讲述了为什么要使用Prism,以及在客户应用程序开发中面临的挑战。Prism的综合方法旨在解决这些挑战,尽管如此,它并不是万能的,文档也...
DotNetBar.for.WPF.v5.9.0.0-AHCU
8. 详谈WPF开发中的数据虚拟化 64 XAML语法 74 1. XAML语法术语 74 2. 代码隐藏和XAML 82 3. XAML和自定义类 83 4. 标记扩展和XAML 87 5. XAML命名空间和命名空间映射 90 6. WPF名称范围 92 WPF控件开发 95 1. WPF...
gong-wpf-dragdrop, GongSolutions.WPF.DragDrop 库是WPF的拖动'n'拖放框架 简介GongSolutions.WPF.DragDrop 库是一个易于使用的拖拉'n'拖放框架。特性使用 MVVM: 拖放逻辑可以放在ViewModel中。 代码不需要放在in中...
在本文中,我们将深入探讨如何在WPF应用中实现视频拍摄功能,主要涉及DirectX.Capture和AForge这两个类库。这两个库都是Windows Presentation Foundation (WPF)开发中用于捕获视频和图像的重要工具。 首先,DirectX...