我知道XAML用于与Blend一起设计UI。我对如此多的术语感到困惑,比如,XAML如何为WPF,Store App,Phone App或UWA发挥作用。更重要的是,WPF,Store App,Phone App和UWA之间有什么区别。这是否意味着旧的桌面项目将不再被WPF或Store App或UWA使用和替换?
答案 0 :(得分:48)
当.NET在〜2000年发布时,您可以使用WinForms为Windows制作桌面应用程序。它通过将Windows API包装在托管代码中,提供对“本机”控件的访问(即,WinForms中的Button实际上是来自user32.dll的Windows Button控件)。这些可以在安装了适当的.NET框架版本的任何Windows版本中运行,包括最高版本的Windows 10。
2006年,发布了WPF,它是WinForms的替代品。 WPF使用XAML(一种基于XML的语言)来声明用户界面元素。在一个简单的WPF应用程序中,.xaml文件描述了GUI,代码隐藏文件描述了逻辑。 DirectX用于将.xaml中描述的内容绘制到窗口中。
与Winforms一样,使用WPF制作的程序可以在安装了相应.NET框架版本的任何Windows版本中运行,包括最高版本的Windows 10.请注意,使用XAML是完全可选的。使用XAML描述的用户界面元素也可以使用.NET语言C#或VisualBasic.NET。但使用XAML通常更简单。见To XAML or not to XAML (MSDN Blogs)。
由于XAML仅基于XML,开发人员和设计人员可以在不需要编译的情况下自由地共享和编辑内容。
从2012年开始,随着Windows 8,可以制作一种名为metro / modern / windows-8 / windows-store-app的新应用程序。这些应用程序与WPF类似,因为它们使用XAML来描述GUI。这些应用程序只能在Windows 8,8.1和Windows 10中运行.Windows 8.1添加了一些改进和功能,但大致保持不变。使用相同的技术为Windows Phone制作应用程序。
随着Windows 10的发布,微软制作了UWP(通用Windows平台),通过它可以使用相同的代码库来定位不同类型的设备(桌面/移动/ xbox /物联网/全息)。这些为UWP制作的应用程序与早期的Windows 8 / 8.1应用程序类似。像以前一样,XAML用于描述GUI。
仅适用于Windows应用商店应用,没有向后兼容性。时间表为Windows 8
- > Windows 8.1
- > Windows 10/UWP
。在UWP中制作的应用程序只能 在Windows 10中运行,而在Windows 8.1中制作的应用程序无法在Windows 8中运行。
答案 1 :(得分:0)
我强烈建议在stopbyte中引用此讨论主题,它有更多详细信息和explanation of the concepts behind WPF, UWP And WinRT。
至于WinForms,我相信它现在已成为历史。几乎已被WPF取代。 我相信微软已经停止开发Windows Forms,并且可能已停止维护它。