一,XAML基础

  1. RuntimeNameProperty特性:为什么<Grid x:Name="grid1"></Grid>等价于<Grid Name="grid1"></Grid>,是因为Grid类使用RuntimeNameProperty特性进行了修饰,  RuntimeNameProperty特性指示哪个属性的值将被做为该类型的实例的名称。
  2. WPF的类型转换器:XAML解析器通过以下的两个方法查找类型转换器,如果找不到,XAML解析器就会生成一个错误。
    1)  检查属性申明,查找TypeConverter特性,如果提供了TypeConverter特性,该特性将指定哪个类可以执行转换。
    2)  如果属性申明中没有TypeConverter特性,XAML解析器将检查对应数据类型的类申明。
  3. XAML是大小写敏感的,所以不能使用<button>代替<Button>,但类型转换器通过不是大小写敏感的,这意味着 Foreground="White" 和 "Foreground="white"具有相同的效果。
  4. 标记扩展:所有标记扩展都继承自System.Windows.Markup.MarkupExtension基类,它提供了一个简单的ProvideValue()方法,该方法获取所期望的数值。StaticExtension标记扩展,它允许引用另一个类中的静态属性:<Button Foreground="{x:Static SystemColors.ActiveCaptionBrush}">
    因为标记扩展映射为类,所以它们也可以被用作嵌套属性,如:
          <Button>
                  <Button.Foreground>
                                <x:Static Member="SystemColors.ActiveCaptionBrush"></x:Static>
                  </Button.Foreground>
          </Button>
    NullExtension:它代表一个null值。
    TypeExtension:该扩展构造一个表示.Net类型的对象。
  5. 附加属性:它是可以用在多个控件但是在另一个类中定义的属性。它根本不是一个真正的属性,它们实际上被转换为方法调用,XAML解析器以DefiningType.SetPropertyName()的形式调用静态方法。
  6. 如果为元素设置特性:xml:space="preserve",元素内所有空白字符将被保留。<TextBox xml:space="preserve"> jiaoyanq  ing</TextBox>
  7. 在XAML中引用非WPF名称空间中的类,需要把.net名称空间映射到一个XML名称空间:xmlns:Prefix="clr-namespace:Namespace;assembly=AssemblyName",可以使用任何想要使用的名称空间前缀Prefix,只要在整个XAML文档中保持一致即可,但是,sys和local前缀通常在导入System名称空间和当前项目名称空间时使用。
  8. 使用XamlReader类解析XAML,在以下的代码示例中,向Window中加载了一个DockPanel对象,同样可以加载整个XAML窗口,在这种情况下,必须将XamlReader.Load()方法返回的对象转换为Window类型,然后为了显示加载的窗口调用它的Show()方法或ShowDialog()方法。

     1     public partial class MainWindow : Window
     2     {
     3         private Button button1;
     4
     5         public MainWindow()
     6         {
     7             InitializeComponent();
     8         }
     9
    10         public MainWindow(string xamlFile)
    11         {
    12             this.Width = this.Height = 285;
    13             this.Left = this.Top = 100;
    14             this.Title = "Dynamically Loaded XAML";
    15             DependencyObject rootElement;
    16             using (FileStream fs = new FileStream(xamlFile, FileMode.Open))
    17             {
    18                 rootElement = (DependencyObject)XamlReader.Load(fs);
    19                 this.Content = rootElement;
    20             }
    21             //注释中是另一种替代方法:
    22             //FrameworkElement frameworkElement = (FrameworkElement)rootElement;
    23             //button1 = (Button)frameworkElement.FindName("button1");
    24             button1 = (Button)LogicalTreeHelper.FindLogicalNode(rootElement, "button1");
    25             button1.Click += new RoutedEventHandler(button1_Click);
    26         }
    27
    28         private void button1_Click(object sender, RoutedEventArgs e)
    29         {
    30             button1.Content = "Thank you";
    31         }
    32     }

一,XAML基础

时间: 2024-10-25 13:52:37

一,XAML基础的相关文章

Windows Phone 一、XAML基础语法

XAML的命名空间 命名空间格式:语法结构为“xmlns:”+“命名空间前缀名”,默认命名空间无需定义命名空间前缀名“xmlns” 命名空间的声明 <Page x:Class="App1.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml&quo

C#人事管理系统 第一天.NET难点加强及XAML基础

sender:代表本控件 Button btn1=(Button)sender;//拿到本控件 btn1.Text=”button控件显示的名字”; 集合类: List<int> list1=new List<int>; list1.Add(11); list1.Add(22); //将数字22添加到集合list1中 类似于数组,但其中存储方式为链表,效率上不如数组 优点:可变长度 数组: int[] a1=new int[2]; a1[0]=11; a1[1]=22; 集合类其它

XAML基础(一)

1.0 XAML是啥? XAML(eXtensible Application Markup Language,可 扩展应用 程序标记语言) 是一种声明性的XML语法 ,像WPF,WF或者Silverlight应用程序通常需要 XAML.Xaml元 素通常映射到,NET类 . 这并不是一个严格的要求 ,但通常都是如此. 1.1 元素 映射到 .net对 象上 一个控制台Demo,需 要引用程序集 PresntationFramework. PresentatioCore. WhdowBase和

3.移动先行之谁主沉浮----XAML基础知识

如果移动方向有任何问题请参考===> 异常处理汇总-移动系列(点) 参考:https://msdn.microsoft.com/zh-cn/library/windows/apps/hh700354.aspx

WPF 基础到企业应用系列5——WPF千年轮回 续前缘

一.摘要 首先非常高兴这个系列能得到大家的关注和支持,前端时间身体状况不适,所以暂停了更新,对此表示非常抱歉,以后会逐渐加快进度.只是因为这是一个非常长的系列,我也想把它写好,所以以后也会慢慢来,在这个系列的过程中也会穿插发一些其它文章,比方Windows Azure.设计模式.WCF.Silverlight等,同一时候也会发一些自己的技术随感和心得.反正仅仅要自己写得开心且对大家有帮助即可.因为自己才疏学浅且是对这些技术的使用总结和心得体会.错误之处在所难免.怀着技术交流的心态,在这里发表出来

【WPF学习】第一章 XAML介绍

XAML(Extensible Application Markup Language的简写,发音为“zammel”)是用于实例化.NET对象的标记语言.尽管XAML是一种应用于诸多不同问题领域的技术,但其主要作用是构造WPF用户界面.换言之,XAML文档定义了在WPF应用程序中组成窗口的面板.按钮以及各种空间的布局. 一.XAML变体 实际上术语“XAML”有多种含义.到目前为止,我们使用XAML标识整个XAML语言,它是一种基于通用XML语法.专门用于表示一颗.NET对象树的语言(这些对象可

拒绝低调,国内首家推出微软WP8.1移动开发全套免费课程

活动类型:公开课 开始时间:2014-10-20 20:00 活动地点:YY频道:85155393 课程简介:学习本次公开课你将收获和体会到:      Windwos Phone8.1的推出正是微软向吹响了WP8崛起的号角,而且匮乏的学习资料是挡在我们面前的大山,传智播客高级讲师蒋坤老师带您从零基础学习整套Windows Phone开发的教程,教程涵盖了XAML基础.数据绑定.WP控件详解.MVVM模式.WP的状态保持机制.WP的音视频开发.WP手势开发.WP设备操作开发.消息推送机制.地图开

转载--我与英语技术书籍

原文:http://www.cnblogs.com/KnightsWarrior/p/EnglishTechBooks.html 我与英语技术书籍 2013-09-05 00:01 by 圣殿骑士, 17877 阅读, 122 评论, 收藏, 编辑 前言(Introduction) 前些天写了一篇<程序猿也爱学英语(上),有图有真相>,大概介绍了我学英语的一些基本资料以及心得体会,本来接下来该发中篇,但<程序猿也爱学英语(中),有图有真相>实在太长,为了方便读者阅读以及多方面考虑,

Silverlight 之 浅析

一.silverlight定义及作用 silverlight用XAML来做前端界面,用.NET或者JS作为程序脚本支持,在浏览器内外运行的应用.可以认为和FLASH 和ADOBE AIR有很大的功能重叠.当然他能做大部分flash或者air程序的工作. 二.silverlight知识层次 包括控件.布局.多媒体.XAML基础.属性和事件.数据.网络.调试等等. Silverlight的界面可以用XAML和C#(或者其他)写.一般都用XAML,所以要先介绍XAML.       用2010新建一个