SilverLight命名空间详解-新手入门
1.核心命名空间
1.xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"是silverlight的核心命名空间,包含所有了的silverlight的核心类。比如usercontrol和grid等.通常此命名空间声明时没有加前缀,因此它成为了整个文档的的默认命名空间。换句话说就是
页面所有的元素都默认的属于此命名空间,除非声明了其它的。
2.xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 表示XAML的命名空间。此命名空间的前缀为x。你可以通过把命名空间放在一个XML元素名称或属性前使用它(例如:x:Class="CheckNamespace.MainPage"
核心命名空间主要是让XAML解析器找到正确的类。比如,当遇到Grid和UserControl时,解析器发现它在http://schemas.microsoft.com/winfx/2006/xaml/presentation命名空间下。然后继续寻找相对应的SilverLight对应的类,直到找到匹配的类system.Windows.Usercontrol和System.Windows.Controls.Grid为止。
2.设计命名空间
和核心命名空间相对应的还有两个不是太重要的命名空间:
1.xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 表示XAML的兼容性命名空间,告诉XAML解析器哪些信息可以忽略或者哪些信息需要处理
2.xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 为特定的XAML设定的命名空间,通常在Blend中支持。主要是用来设置页面设计时的大小
比如 mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400",mc属于http://schemas.openxmlformats.org/markup-compatibility/2006,它告诉XAML解析器忽略页面内以d开头的信息是安全。
DesignHeight和DesignWidth属性是http://schemas.microsft.com/expression/blend/2008的一部分。它告诉VS或Blend在设计时显示页面大小为300*400
3.自定义命名空间
多数情况下需要在XAML中访问自己的命名空间,最常见的就是引用第三方组件或使用自己创建的silverlight自定义控件。如果是这样,需要定义一个新的XML名空间前缀并指向你的程序集。比如
<UserControl x:Class="CheckNamespace.MainPage"
xmlns:a="clr-namespace:AAA;assembly=AAALibrary"
XML命名空间包含三个部分
1.xml命名空间前缀:在XAML页面中使用xml命名空间前缀指向命名空间。比如此例子中的a,也可以使用其它自己想要的的前缀,但不允许和已有的重复,否则会发生冲突。
2.NET命名空间:在此例子中,类在AA命名空间下。如果在多个页面中使用相同的类,可以指向不同的XML命名空间或者相同的(只要和其它的不冲突)。
3.程序集:本例子中,使用到的类是AALibrary程序集一部分。silverlight会在放置你项目程序集相同的XAP包中寻找此程序集。
注意:silverlight使用了一个精简版的CLR。因此silverlight程序不能使用完整版的.NET类库。如果需要使用程序集,可以在VS中选择silverlight类库项目模板来创建一个silverlight类库。
如果使用的自定义控件位于当前应用程序内,就可以省略命名空间的程序集部分,比如
xmlns:b="clr-namespace:AAA"
在引用命名空间后,就可以在XAML文档任何地方使用,比如AAA命名空间下有一个叫MyButton的自定义控件,可以这样使用
<b:MyButton x:Name="btnTest" Click="btnTest_Click"/>
SilverLight命名空间详解-新手入门的更多相关文章
- ggplot2作图详解:入门函数qplot
ggplot2作图详解:入门函数qplot ggplot2的功能不用我们做广告,因为它的作者Hadley Wickham就说ggplot2是一个强大的作图工具,它可以让你不受现有图形类型的限制,创 ...
- linux命名空间详解_转
转自: Linux的命名空间详解--Linux进程的管理与调度(二) Linux Namespaces机制提供一种资源隔离方案. PID,IPC,Network等系统资源不再是全局性的,而是属于特定的 ...
- Python基础知识详解 从入门到精通(七)类与对象
本篇主要是介绍python,内容可先看目录其他基础知识详解,欢迎查看本人的其他文章Python基础知识详解 从入门到精通(一)介绍Python基础知识详解 从入门到精通(二)基础Python基础知识详 ...
- 反射实现Model修改前后的内容对比 【API调用】腾讯云短信 Windows操作系统下Redis服务安装图文详解 Redis入门学习
反射实现Model修改前后的内容对比 在开发过程中,我们会遇到这样一个问题,编辑了一个对象之后,我们想要把这个对象修改了哪些内容保存下来,以便将来查看和追责. 首先我们要创建一个User类 1 p ...
- AspNetCore.Identity详解1——入门使用
今年在面试的时候被问到单点登录的知识,当时支支吾吾不知该如何作答,于是面试失败.回到住所便开始上网查找资料,但苦于难于找到详尽的demo,总是无法入门.又由于我正在学习了解asp.net core,里 ...
- [转]Web.config配置文件详解(新手必看)
本文转自:http://www.cnblogs.com/gaoweipeng/archive/2009/05/17/1458762.html 花了点时间整理了一下ASP.NET Web.config配 ...
- 转:Web.config配置文件详解(新手必看)
转:http://www.cnblogs.com/gaoweipeng/archive/2009/05/17/1458762.html 花了点时间整理了一下ASP.NET Web.config配置文件 ...
- Web.config配置文件详解(新手必看)
花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点.所以这里只介绍一些比较常用的节点. <? ...
- (转)Web.config配置文件详解(新手必看)
花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点.所以这里只介绍一些比较常用的节点. <? ...
随机推荐
- python字符串操作(连接、比较、格式化等)(转)
字符串连接 方法一: Python代码 >>> str1 = 'hello' >>> str2 = 'world' >>> str1_2 = st ...
- LINUX 内存结构
1.页框管理 Linux采用4KB页框大小作为标准的内存分配单元.内核必须记录每个页框的状态,这种状态信息保存在一个类型为page的页描述符中,所有的页描述存放在mem_map中.virt_to_pa ...
- close和shutdown函数的区别
close函数首先是将传入的socket句柄引用数减1(因为fork进程时会导致socket句柄被多个进程引用),待到引用数等于0的时候,close才会真正关闭连接. shutdown函数是立刻关闭连 ...
- OSG的HUD抬头文字显示
原文:http://blog.csdn.net/tmljs1988/article/details/7562926 可以运行 1. HUD流程图: 完整源代码如下: /*OSG中的HUD, ...
- VC6.0常见编译错误提示
原文:http://c.biancheng.net/cpp/html/746.html 1) error C2001: newline in constant 编号:C2001 直译:在常量中出现了换 ...
- Python面试题汇总
原文:http://blog.csdn.net/jerry_1126/article/details/44023949 拿网络上关于Python的面试题汇总了,给出了自认为合理的答案,有些题目不错,可 ...
- chrome打不开12306
chrome打不开12306怎么办?chrome怎么会打不开12306? chrome打不开12306: 1.没有安装12306网站的根证书. 2.打开https://dynamic.12306.cn ...
- 类型推导:函数模板与auto
1.从函数模板谈起 函数模板的类型推导机制是在c++98时代就有的,auto的类型推导机制与其基本一致,所以先理解函数模板类型推导. 函数模板可以用如下代码框架表示: #template<typ ...
- Debian 8 在虚拟环境中安装kivy
mkvirtualenv kivy 或者按官方教程所说: virtualenv --no-site-packages kivyinstall (kivy)~/pythonvenv ᐅ pip list ...
- 重构18-Replace exception with conditional(条件替代异常)
重构没有什么出处,是我平时经常使用而总结出来的.欢迎您发表任何改进意见或建议.我相信一定还有其他比较好的重构可以解决类似的问题. 我曾无数次面对的一个代码坏味道就是,使用异常来控制程序流程.您可能会 ...