A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈行 高级黑马   /  2013-5-4 16:40  /  1847 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. <Grid Name="gr"></Grid>  <!--这里为一个grid布局-->写在XAML中
  2. Grid gr = new Grid();//这个在代码区实例的对象  
  3. 用起来编译运行都不报错
  4.   
复制代码
但是在XAML实例的才有用  在代码区实例的没用   
也就是说我在代码区实例化 然后对这个对象进行写代码  全都等于白写  为什么啊?

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

2 个回复

倒序浏览
XAML是基于XML的,它继承了XML所有的定义和规则。所以与C#代码完全是两回事。
但是与XML不同的是每个XAML元素都是一个.NET CLR类。
还有,你在后台不能实例化XAML元素
可能是你没有命名空间,在XAML文件中包含这个
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  //xmln 是XML的名字空间
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
XAML会被编译为BAML(Binary Application Markup Language)文件。通常,BANL文件比XAML更小,编译后的BAML都是Pre-tokenized的,这样在运行时能更快速地加载与分析XAML。这些BAML文件被以资源的形式嵌入到Assembly当中。同时生成相应的代码(文件名称是**.g.cs或者**.g.vb),这些代码根据XAML元素分别生成命名的Attribute字段,以及加载BAML的构造函数。

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
罗新华 发表于 2013-5-4 20:50
XAML是基于XML的,它继承了XML所有的定义和规则。所以与C#代码完全是两回事。
但是与XML不同的是每个XAML元 ...

看来这是个难点啊  !!~  你说的命名空间还是有的  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马