• C#之XMAL与WPF


    XAML的简单说明
    XAML是用于实例化.NET对象的标记语言,主要用于构建WPF的用户界面
    XAML中的每一个元素都映射为.NET类的一个实例,例如<Button>映射为WPF的Button对象
    XAML可以在一个元素中嵌套另一个元素,例如Grid元素可以嵌套Button元素
     

    了解XAML

    VisualStudio创建一个窗口,默认情况下产生的代码如下:
    这段代码中包含两个标记元素,一个是Window,一个是Grid
    Window是WPF顶级元素的一种,还有另外两种顶级元素Page和Application
    Window
    用于描述一个窗口
    Page
    和Window类似,但它用于可导航的应用程序
    Application
    用于定义应用程序资源和启动设置
    任何一个XAML文档只能拥有一个顶级元素

    属性

    窗口标签中Title、Height、Width都是窗口的属性
    在XAML文件中属性的值的类型总是字符串,
    但XAML的解析器可以把这些字符串转换成.NET的任意类型
     

    名称空间

    在上面代码中,用xmlns属性来标记此文档从属于哪个名称空间
    为什么需要名称空间呢?
    如果我们在第三方组件中定义了Window类,如果没有一个名称空间做限定的话,
    编译器不知道我们将使用哪个Window类型来渲染窗口
    我们在上面的代码中,看到了两个名称空间,一个是WPF核心名称空间、一个是XAML名称空间
    WPF核心名称空间
    包含所有WPF类,包含用来构建用户界面的控件,是文档的默认名称空间
    XAML名称空间
    包含各种XAML实用特性,这些特性可以影响文档的解释方式,该名称空间被映射为前缀x,使用前需要标注前缀x,比如:<x:ElementName>
    有了名称空间的限定,我们直接书写的<Grid>标签,才可以映射到System.Windows.Controls.Grid类上

    代码隐藏类

    XAML创建用户界面,但交互规则还是需要.NET语言编写
    x:Class属性标记着与该XAML文件相配合的.NET类
    注意这个类是一个“部分类”
    这个部分类的构造函数中调用了InitializeComponent方法,
    这个方法负责创建控件对象、设置属性、绑定事件、构造用户界面等工作

    复杂属性

    有些属性的值不是一个简单类型,而是一个对象,不如下面这个Grid的背景颜色
    我们现在只要知道XAML解析器也能创建出复杂属性对应的值即可

    标记扩展

    如果我们希望把属性值绑定为一个已经存在的对象,那么我们可以使用静态标记扩展
    标记扩展还有很多其他的用法,我们以后再聊
    这里也涉及到了属性绑定,我们以后再聊

    附加属性

    对于嵌套的元素,子元素可以使用父元素定义的一些属性,这类属性就是附加属性
    在WPF中附加属性多用于布局
    修改记录
  • 相关阅读:
    每天干的啥?(2017.7)
    每天干的啥?(2017.6)
    每天干的啥?(2017.5)
    每天干的啥?(2017.4)
    C# WinForm中如何让当前应用程序只允许启动一个实例
    C# WinForm 关闭登陆窗体后进程还再内存怎么办?
    ASP.NET在MVC控制器中获取Form表单值的方法
    C#封装CRUD到SqlHelper类解读
    windows 10微软账户不能访问局域网共享,但是本地账户可以访问
    C#高级参数params的使用
  • 原文地址:https://www.cnblogs.com/lushilin/p/4476474.html
Copyright © 2020-2023  润新知