• 关于WPF中的XAML


    XAML全称extensible application markup language(可扩展性标记语言)

    可扩展应用程序标记语言(XAML)是一种声明性语言。概括来说,就是为应用程序构建UI。目前WPF,UWP应用程序都是使用XAML语言来构建UI.

    1、XAML命名空间(xmlns)

    如  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    这里的值是一个url,但其实这里并不指向这个链接。它只是用来标识在不同文档之间的唯一性。

    这个命名空间实际上映射的是wpf的命名空间

    System.Windows,System.Windows.Controls,System.Windows.Media.Media3D等等

    它实际的定义如下

    1 [assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows")]

    这段代码定义在AssemblyInfo.cs中

    2、创建对象

     1  public class Student
     2     {
     3         public int ID { get; set; }
     4 
     5         public string StudentName { get; set; }
     6 
     7         public School School { get; set; }
     8     }
     9 
    10     public class School
    11     {
    12         public string SchoolName { get; set; }
    13     }

    有上述类

    在C#中创建

    1 var student = new Student();

    在xaml中创建

    1 <Student />

    在调用这个类之前,我们还需要引入命名空间。

    说明:如果是不同的程序集,还需要指定程序集,如(xmlns:CEF="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf")

    1  xmlns:myclass="clr-namespace:MyNamespace"

    这样,完整的调用如下

    1 <myclass:Student />

    3、为属性赋值

    1  <myclass:Student ID="1" StudentName="ashely" />

    属性是对象的情况

    1 <myclass:Student ID="2" StudentName="ashely" x:Name="stu">
    2                     <myclass:Student.School>
    3                         <myclass:School SchoolName="renmxy"/>
    4                     </myclass:Student.School>
    5 </myclass:Student>

    4、为对象命名(x:Name或Name)

    1  <myclass:Student ID="2" StudentName="ashely" x:Name="stu"/>
    1 <Label x:Name="mylable">

    使用Name命名只能用于.Net 3.5及以后的版本

    x:Name是全版本通用

    命名后可以在后台代码中直接操作

    1             //Student
    2             stu.ID = 2;
    3 
    4             //Label
    5             mylable.Foreground = Brushes.Green;

     示例代码

  • 相关阅读:
    1008: 约瑟夫问题
    1009: 恺撒Caesar密码
    1006: 日历问题
    1007: 生理周期
    Asp.Net Core 发布和部署( MacOS + Linux + Nginx )
    ASP.NET Core Docker部署
    Asp.Net Core 发布和部署(Linux + Jexus )
    ASP.NET Core 十种方式扩展你的 Views
    基于机器学习的web异常检测
    Disruptor深入解读
  • 原文地址:https://www.cnblogs.com/zhaotianff/p/11141749.html
Copyright © 2020-2023  润新知