当前位置: 首页 > news >正文

青岛信息网新郑整站优化

青岛信息网,新郑整站优化,c 做网站怎么居中,江门招聘网最新招聘一、XAML的含义 问#xff1a;XAML的含义是什么#xff1f;为什么WPF中会使用XAML#xff1f;而不是别的#xff1f; 答#xff1a;在XAML是基于XML的格式#xff0c;XML的优点在于设计目标是具有逻辑性易读而且简单内容也没有被压缩。 其中需要提一下XAML文件在 Visu…一、XAML的含义 问XAML的含义是什么为什么WPF中会使用XAML而不是别的 答在XAML是基于XML的格式XML的优点在于设计目标是具有逻辑性易读而且简单内容也没有被压缩。  其中需要提一下XAML文件在 Visual Studio (VS) 编译时是会被转换为BAML。BAML最终会以资源的形式嵌入到DLL或者EXE程序集中。由于BAML是标记化的所以在程序运行时能够被更快的解析。 二、 XAML文档中的含义  我们新建一个WPF应用程序。创建的过程就跳过了如果不知道可以查一下在我们新建的WPF程序中如下图的红框内容是我们需要介绍的内容。 放大的效果我们一行一行的解释 示例解释         首先我们可以关注到两个元素Window和Grid元素被修饰起来的其实都是创建了一个类型的实例。例如Grid就是创建了一个Grid对象。其中还需要注意其中Window我们称呼其为“顶级元素”因为在XAML中必须且只能有一个顶级元素。顶级元素在WPF中只有三种类型其他两种是 Page和Application TitleMainWindow Height450 Width800 示例解释         我们关注到上面的如TitleMainWindow  其中这里就是给当前Window 元素对象属性进行了对Title属性赋值其中赋值是通过attribute特性来实现的。attribute特性可以为每一个类的属性进行赋值。有些情况属性值比较复杂就采用属性元素语法后面介绍。         运行效果是Title 设置当前窗体的标题Width Height是设置当前窗体的宽和高的 Window x:ClassWpfApp2.MainWindow 示例解释          这里是指示XAML文件对应的C#类。换句话说就是创建了一个名为MainWindow的新类改类继承Window xmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentation 示例解释         这个在WPF当中是指定名称空间的意思其中以xmlns开头是因为它是xml中的一个特殊特性。它专门用来声明名称空间。所以我们在声明名称空间的时候通常都是以xmlns开头。         当前这个名称空间是指向WPF所有的类。         当前的名称空间是没有前缀的所以它是整个文档的默认名称空间我们在使用当前名称空间里面的WPF的所有类我们就不需要以前缀开头来去声明。 xmlns:xhttp://schemas.microsoft.com/winfx/2006/xaml 示例解释改名称空间的前缀为X所以在使用当前名称空间的内容前面需要以X:开头。 举个例子 x:Array TypeListListListItemParagraphFontFamily1FontSize15FontStyleNormalFontWeightBold5/Paragraph/ListItem/List/x:Array 三、代码隐藏类 在我们创建wpf的时候我们前面提到了有一行Window x:ClassWpfApp2.MainWindow。是Windows X 前缀开头的一个Class来修饰了一个MainWindow类当前类继承自Windows 。其实这个时候我们的编译器就自动为我们生成了当前类的代码。 代码如下所示 namespace WpfApp2 {/// summary/// MainWindow.xaml 的交互逻辑/// /summarypublic partial class MainWindow : Window{public MainWindow(){InitializeComponent();}} } 我们介绍一下InitializeComponent方法。当前方法就是 调用System.Windows.Application类的LoadComponent方法LoadComponent方法是从程序集中提取BAML并用它来构建用户界面解析BAML时它会创建每个控件的对象设置其属性并关联所有事件处理程序。所以他在我们wpf当中是很重要的一个方法所以我们永远都不要删除它就算我们新建了一个构造函数我们也应该在新建的构造方法当中调用当前方法 四、简单属性和类型转换器 简单属性简单属性就是我们前面提到的直接进行对属性进行赋值如  Width800 但我们这里属性赋值的过程中其实编译器会执行类型转换的操作。主要是为了关联非字符串和字符串属性。将转换后的值赋值给我们的属性。首先属性赋值的的过程中都会去查找TypeConverter特性如果提供了TypeConverter特性该特性将指定哪个类可执行转换。 如Background 属性指定了BrushConverter类型转换器怎么找到的呢 提示类型转换器指定了什么类型的值可以转换为当前属性的值 。  五、复杂属性 问什么是复杂属性 答实际上就是当前属性包含了完备的对象当前的对象具有自己的一系列属性。也可以通过类型转换器来实现但有时可能这种实现方式更加复杂。 举个例子 Window.BackgroundSolidColorBrush ColorRed / /Window.Background 注意Window.Background标签 我们称呼为WIndow的子标签。 举个例子 Window.BackgroundLinearGradientBrushGradientStop ColorRed Offset0 /GradientStop ColorBlack Offset1 //LinearGradientBrush/Window.Background 示例解释        当前我们创建了LinearGradientBrush对象然后创建了GradientStop 对象来填充GradientStopCollection集合LinearGradientBrush 的类型 提示所有的xaml我们都说是创建了某某对象然后给某某对象添加了什么样的内容那么反过来其实我们用xaml写的所有的代码我们都可以用代码来实现 。这里就不做示范了。 六、标记扩展 问什么是标记扩展 答他可以帮我们完成某些情景如可将属性值设置为一个已经存在的对象、或者希望通过将一个属性绑定到另一个控件来动态的设置属性值。这两种情况我们都需要使用标记扩展。其中我会举例第一种的写法。 举个例子 Window.BackgroundLinearGradientBrushLinearGradientBrush.GradientStopsGradientStop Offset0.5 Color{x:Static local:MainWindow.color} /GradientStop Offset0.5 ColorBlack //LinearGradientBrush.GradientStops/LinearGradientBrush/Window.Background using System.Windows; using System.Windows.Media;namespace WpfApp2 {/// summary/// MainWindow.xaml 的交互逻辑/// /summarypublic partial class MainWindow : Window{public MainWindow(){InitializeComponent();}public static Color color { get; set; } Colors.Red;} } 示例解释 当前代码将Color属性设置为一个已经存在的对象。 七、嵌套元素 XAML每个元素决定如何处理嵌套的元素。这种交互会使用下面三种机制中的一种进行中转。  1 如果父元素实现了Ilist接口解析器将调用list点Add的方法,并且为该方法传入子元素作为参数  2 如果父元素实现了IDictionary接口那么将调用IDictionary。Add的方法并且为该方法传递子元素作为参数。当使用字典集合时还必须设置X:Key特性以便为每个条目指定键名。 3 父元素使用ContentProperty特性进行修饰解析器将使用子元素设置对应的属性 举个例子 Window.BackgroundLinearGradientBrushLinearGradientBrush.GradientStopsGradientStop Offset0.5 Color{x:Static local:MainWindow.color} /GradientStop Offset0.5 ColorBlack //LinearGradientBrush.GradientStops/LinearGradientBrush/Window.Background 示例解释         当前属性GradientStops 是GradientStopCollection类型实现了IList接口所以编译器会调用list接口点Add的方法将元素作为参数添加  举个例子 GridButton/Button/ /Grid 示例解释         当前Grid既没有实现IDictionary接口也没有实现Ilist接口但他实现了ContentProperty特性所以编译器会执行 。可以反编译看到那么实际程序就会调用Grid的Children属性的Add方法将嵌套的元素添加进去。; 提示所以继承ContentControl控件都只能包含单一的嵌套元素。继承ItemsControl类的控件都可以包含多个条目集合。 举个例子: ListBoxListBoxItem /ListBoxItem /ListBoxItem /ListBoxItem /ListBoxItem /StackPanel /Button / /ListBoxButtonStackPanel / /Button ListBox继承ItemsControl而Button继承ContentControl。
http://www.sczhlp.com/news/214540/

相关文章:

  • 怎么做一淘宝客网站吗网页请求流程
  • 珠海市企业网站制作平台wordpress最大上传2g
  • 赶集网网站建设分析网站的模版可以换吗
  • 阿里云服务器如何上传网站凡科平台登录平台
  • 青海公路建设信息服务网站区块链技术做网站
  • 蛋糕店微网站手机网站用什么软件做的好处
  • 打不开住房和城乡建设部网站wordpress会员系统
  • 企业网站建设项目wordpress 文章评论插件
  • 做网站费用会计科目舆情报告案例2022
  • 网站之家app中卫网络工程招聘
  • 绍兴市网站建设企业进行网络营销策划的目标
  • 建设邮费自己的网站_要不要购买服务器的广州制作外贸网站公司
  • 网站建设与管理试题答案1688一键铺货到拼多多
  • 网站建设维护 天博网络可以注册的网站
  • 网站顶部悬浮导航代码杭州网站建设机构
  • 做配电箱的专门网站中建八局第一建设有限公司资质
  • 电脑配件经营网站的建设盛成广告传媒做网站的
  • 微信网站设计模板下载html个人网页制作模板
  • 身份运算符
  • java基础9-面向对象进阶
  • 每日反思(2025_10_20)
  • 九江网站建设求职简历黄渡网站建设
  • 单位建设网站的请示茶叶官网网站建设
  • 辽宁建设工程信息网新网站知乎seo排名帝搜软件
  • 购物网站的搜索功能是怎么做的网站开发u盘128够吗
  • 网站开发工作进度表查询网站有哪些导入链接及数量
  • 建设工程招投标网站网站制作合同模板
  • 网站商城维护怎么做上海设计网站建设
  • wordpress网站域名解析搜索引擎营销的内容有哪些
  • 高权重网站做员会来顶排名泰安企业建站公司电话