XAML

XAML(Extensible Application Markup Language 聆聽i/ˈzæməl/)是Windows Presentation Foundation(WPF)和Universal Windows Platform(UWP)的一部分,是微软开发的一種基于XML、基于声明,用于初始化结构化值和对象的使用者介面宣告式程式設計,它有著HTML的外觀,又揉合了XML語法的本質,例如:可以使用<Button>標籤設定按鈕(Button)。它類似Linux平台下的glade。至於WinFX XAML Browser Application(XBAP)是用XAML作界面描述,在瀏覽器中執行的程式,可取代過去的ActiveX、Java Applet、Flash。

XAML本質上屬於一種.NET编程语言,屬於通用語言運行庫(Common Language Runtime),同C#、VB.NET等同。與HTML類似,特点是用來描述使用者介面。XAML的语法格式为:<Application... />,Application是必備的基本元素。XAML可以定義2D和3D物件、旋轉(rotations)、動畫(animations),以及各式各樣的效果。

Hello world

  • C# UWP
<Page
    x:Class="UwpAppExample.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:UwpAppExample"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Grid>
        <Button Margin="10,0,10,0" Height="100" Click="Hello_Click" Content="Click Me!"/>
    </Grid>

</Page>


using System;
using Windows.UI.Xaml.Controls;
namespace UwpAppExample
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }
        private async void Button_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
        {
            await new Windows.UI.Popups.MessageDialog("Hello World!").ShowAsync();
        }
    }
}
  • C# WPF
<Window x:Class="WpfAppExample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfAppExample"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Button Margin="10,0,10,0" Height="100" Click="Hello_Click" Content="Click Me!"/>
    </Grid>
</Window>


using System.Windows;

namespace WpfAppExample
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Hello_Click(object sender, RoutedEventArgs e)
        {
            MessageBox.Show("Hello World!");
        }
    }
}
  • Visual Basic dotNet
<Window x:Class="WpfAppExample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfAppExample"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Button Margin="10,0,10,0" Height="100" Click="Hello_Click" Content="Click Me!"/>
    </Grid>
</Window>


Imports System.Windows

Class MainWindow
    Sub New()
        InitializeComponent()
    End Sub

    Private Sub Hello_Click(sender As Object, e As RoutedEventArgs)
        MessageBox.Show("Hello World!")
    End Sub
End Class

参考资料

外部連結

  • Microsoft XAML overview
  • XAMLdev.com (页面存档备份,存于互联网档案馆) A selection of categorized resources on XAML
  • XAML Controls from Microsoft Longhorn Developer Introduction (页面存档备份,存于互联网档案馆
  • XAML used in Microsoft .NET platform (页面存档备份,存于互联网档案馆
  • XAMJ, open source Java based project (页面存档备份,存于互联网档案馆
  • United XAML Initiative (页面存档备份,存于互联网档案馆) - Open Source XAML Alternatives
  • Shaxam - LightWave to XAML converter
  • XAML and Technical Authors (页面存档备份,存于互联网档案馆) A discussion of the affect of the open nature of XAML.
  • XAML page on NetFXGuide.com A selection of categorized resources on XAML.
  • LearnWPF Website to learn WPX. (页面存档备份,存于互联网档案馆
  • XAML Discussion Board - A great discussion board for questions on XAML and the WPF
实现
架構
共同語言基礎架構
CLI支持語言
共同語言1
其他語言2
Core家族3
元件
比較
即將推出
  • "Acropolis"
  • "Jasper"
1微软在Visual Studio.NET Framework中提供了或者将提供支持的语言
2被多數使用者使用,且非教學或研究型的語言。
3具有跨平台(Windows, Mac OSX, Linux)能力的開發框架。

范型
过程式
面向对象
多范型
函数式
逻辑式
脚本语言
动态语言
Shell语言
ECMA-262
特定平台
.NET
JVM
特定领域
科学计算
GPU计算
  • Cg/HLSL
  • GLSL
  • Brook英语BrookGPU
  • OpenCL
  • CUDA/PTX英语Parallel Thread Execution
  • Futhark
  • SPIR-V英语Standard Portable Intermediate Representation
数据查询
可视化
传媒设计
 
其它
  • 分类 目录
  • 列表级条目 列表
  • 历史
  • 比较英语Comparison of programming languages
  • 时间线英语Timeline of programming languages