WPF学习:XAML概述

本文介绍了XAML(可扩展应用程序标记语言)的基本概念及其在软件开发中的应用。XAML能够帮助开发团队实现用户界面与逻辑代码的分离,提高开发效率。文章详细讲解了XAML的语法特点、树形结构及属性赋值方式,并介绍了如何利用XAML进行事件处理和代码后置。

http://www.cnblogs.com/lufangtao/archive/2012/09/11/2680486.html

1.什么是XAML

  软件开发中最典型的分工合作就是设计师(Designer)与程序员(Programmer)之间的协作。一般协作是这样进行的:

     (1)需求分析结束后,程序员对照需求设计一个用户界面(User Interface,UI)的草图,然后把精力主要放在实现软件的功能上。

  (2)与此同时,设计师对照需求、考虑用户的使用体验(User Experience,UX)、使用专门的设计工具(比如PS)设计出优美而是用的UI。

  (3)最后,程序员按照设计师绘制的效果图,使用编程语言实现软件的UI。

设计师和程序员的合作是“串行”的,如果设计师能与程序员“并行”工作并且直接参与程序开发中来,会解决很多问题。

  微软借鉴了网络程序开发团队的经验,把开发模式从网络开发移植到桌面开发和富媒体网络程序的开发上,创造了一种新的开发语言-XAML(读作zaml)。全称为Extensible Application Markup Language,即可扩展应用程序标记语言。扮演者HTML+CSS+Javascript的角色。

  设计师使用Blend来设计UI,程序员则使用VS开发后台逻辑代码。

2.XAML的优点

  巨大优点是它帮助开发团队真正实现了UI与逻辑的剥离。

3.XAML入门

  非空标签:<Tag Attribute1=Value1 Attribute2=Value2>Content</Tag>

  空标签:<Tag Attribute1=Value1 Attribute2=Value2/>

  Property 属于面向对象理论范畴。在使用面向对象思想编程的时候,常常需要对客观事物进行抽象,再把抽象出来的结果封装成类,类中用来表示事物状态的成员就是Property。

  Attribute是编程语言文法层面的东西。Attribute只是用来影响类在程序中的用法,而Property则对应着抽象对象身上的性状,她们根本不是一个层面上的东西。

  XAML是一种“声明”式语言,当你见到一个标签,就意味着声明了一个对象,对象之间的层级关系要么并列、要么是包含,全都体现在标签的关系上。

  XAML使用标签来定义UI元素(UI Element),每个标签对应.NET Framework类库中的一个控件类。通过设置标签的Atrribute,不但可以对标签所有对应空间对象的Property进行赋值,还可以做一些额外的事件。

4.XAML 文档的树形结构

  XAML使用树形逻辑结构来描述UI。例如

复制代码
<Window>
    <StackPanel>
        <TextBox/>
        <TextBox/>
        <StackPanel>
            <TextBox/>
             <TextBox/>
        </StackPanel>
        <Button>
             <Image/>
        </Button>
    </StackPanel>   
</Window>    
复制代码

5.XAML中为对象属性赋值的语法

  XAML中为对象属性赋值公有两种语法:

  使用字符串进行简单赋值

  使用属性元素进行复杂赋值

  5.1 使用标签的Attribute为对象属性赋值

  这种通过Attribute=Value语法赋值时,Value只可能是一个字符串值。

  5.2使用TypeConverter类将XAML标签的Attribute与对象的Property进行映射(不懂)

  5.3 属性元素

  非空标签均有自己的内容(Content)。标签的内容指的就是夹在起始标签和结束标签之间的一些子级标签,每个子级标签都是父级标签内容的一个元素。例如:

复制代码
<ClassName>
     <ClassName.PropertyName>
         <!--对象形式为属性赋值-->
     </ClassName.PropertyName>
</ClassName>    
复制代码

注意:能使用Attribute=Value形式赋值的就不用属性元素

  5.4标记扩展

  所谓标记扩展,实际是一种特殊的Attribute=Value语法,其特殊的地方在于Value字符串是由一对花括号及其括起来的内容组成,XAML编译器会对这样的内容作出解析。生成相应的对象。

  例如:

<TextBox Text="{Binding ElementName=slider,Path=Value,Mode=OneWay}"/>

6.事件处理器与代码后置

  WPF支持XAML里为对象的事件指定事件处理器,方法时使用事件处理器的函数名为对应事件的Attribute进行赋值:<ClassName EventName="EventHandlerName">

  代码后置:设计师用XAML为程序创建漂亮的“壳”(UI)并展现给客户;程序员用C#编写程序的“瓢”(逻辑)、从后台支持前面的“壳”--这种将逻辑代码与UI代码分离、隐藏在UI代码后面的形式就叫代码后置(Code-Behind)。

7.导入程序集和引用其中的名称空间

  XAML引入名称空间的语法:xmlns:映射名=“clr-namespace:类库中名称空间的名字;assembly=类库文件名”。一旦我们将类库中的名称引用XAML文档,我们就可以使用这些名称空间里的类。语法格式:<映射名:类名>...</映射名:类名>

8.XAML的注释

  XAML的注释继承自XML,语法是:<!--需要被注释掉的内容-->

    

9.x名称空间

  大凡包含XAML代码的WPF成员都需要通过语句xmlns:x="http://schemas.microsoft.com/winfx/2006/xmal"来引入http://schemas.microsoft.com/winfx/2006/xmal这个名称空间。

     x名称空间包含的工具

  

9.1 x:Class

  这个Attribute的作用是告诉XAML编译器XAML标签的编译结果与后台代码指定的类合并。

9.2 x:ClassModifier

  这个Attribute的作用是告诉XAML编译有标签编译生成的类具有怎样的访问控制级别。

9.3 x:Name

  告诉XAML编译器,当一个标签带有x:Name时除了为这个标签生成对应实例外还有为这个实例声明一耳光引用变量,变量名就是x:Name的值。将XAML标签所对应对象的Name属性也设为x:Name的值,并把这个值注册到UI树上,以便查找。

9.4 x:FieldModifier

  x:FieldModifier用来在XAML里改变引用变量访问级别的。例如:

  <TextBox x:Name="textBox1" x:FieldModifier="public" Margin="5"/> 默认的访问级别默认为internal。x:FiledModifier使用前提是这个标签同时也使用x:Name。

9.5 x:Key

  x:Key的作用就是为资源贴上用于检索的索引。例如:

      

?
xmls:sys = "clr-namespae:System;assembly=mscorlib"
 
  <Window.Resources>
 
    <sys:String x:Key= "myString" >Hello WPF Resource!</sys:String>
  </Window.Resources>
 
  <Textbox Text= "{StaticResourc ResourceKey=myString}" />
9.6 x:Type

  x:Type的值应该是一个数据类的名称。

9.7 x:Null

  xaml中的空值

9.8 x:Array

  通过它的Items属性向使用者暴露一个类型已知的ArralyList实例,ArrayList内成员的类型又x:Array的Type指明。

9.9 x:Static 

  xaml中使用数据类型的static成员。

内容概要:本文系统研究了构网型变流器的正负序阻抗解耦特性及其在弱电网环境下的稳定性表现,重点依托Matlab/Simulink仿真平台,构建了详细的阻抗数学模型,设计了解耦控制策略,并采用小信号扫频法进行频域辨识与稳定性验证。研究深入探讨了构网型变流器与传统跟网型逆变器在正负序阻抗特性上的本质差异,结合虚拟同步发电机(VSG)等先进控制技术,分析其在抑制宽频带振荡、削弱锁相环动态耦合等方面的优越性。文中不仅提供了完整的仿真模型与MATLAB代码实现,还整合了光伏、风电、储能、微电网等多类新能源系统的阻抗建模与稳定性分析资源,形了一套面向新型电力系统稳定性的综合性技术资料体系,具有较强的科研复现与工程参考价值。; 适合人群:面向具备电力电子、电力系统自动化、新能源并网等专业背景的研究生、高校教师及工程技术人员,特别适用于从事阻抗建模、小干扰稳定性分析、宽频振荡机理研究以及撰写高水平学术论文的科研工作者。; 使用场景及目标:①掌握构网型变流器正负序阻抗建模与扫频辨识的仿真方法;②深入理解VSG等构网型控制在弱电网中提升稳定性的内在机理;③复现顶刊论文中的阻抗分析流程与稳定性判据应用;④利用提供的熟模型与代码加速科研进程,支撑课题研究与学术果产出。; 阅读建议:建议结合文中提供的Simulink模型与MATLAB代码,按照“理论建模—仿真搭建—扫频激励—频响提取—Nyquist判据分析”的完整流程进行实践操作,重点关注扫频信号的注入方式、频率范围设置及阻抗曲线的物理意义解读,并参考博士论文复现案例深化对复杂动态耦合问题的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值