---- 本文分为两个部分: 从零开始创建一个 UWP 项目并完成部署 从零开始编写一个 UWP 应用程序和窗口 本文将一个普通项目改造成 UWP 项目,重点在了解 UWP 的项目文件组成。...参见: 理解 C# 项目 csproj 文件格式的本质和编译流程 将 WPF、UWP 以及其他各种类型的旧 csproj 迁移成基于 Microsoft.NET.Sdk 的新 csproj 于是,我创建一个...将项目改造成 UWP 项目 UWP 程序的输出类型是 AppContainerExe,而不是一般的 Library 或者 Exe。...参见 新 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras。...然而实际情况也不容乐观,因为此第三方 Sdk 只支持 UWP 的库程序,而不支持应用程序容器。
(WPF) 是不相同的,虽然都可以做界面和桌面开发,但是 UWP 是一个新的 UI 框架,而且 UWP 是支持很多平台,至少比 WPF 多。...可以使用 Windows Forms、WPF、和 UWP 来构建Windows 应用程序 ASP.NET MVC 的 Web 应用。....NET Core 支持 Windows Forms、 WPF、UWP和 ASP.NET Core。 UWP用于构建 Windows10 目标Windows和移动应用程序。...如果你目前主要是维护和更新现有 .NET 应用程序,那么 .NET Framework 是你一个不错的选择。将现有 .NET 程序移植到 .NET Core 上可能还是需要一些工作。 找工作?...这将使得开发者能够更灵活地将 UWP 中一些更现代化的接口引入到 WPF 和 Windows Forms 中。
如果想迁移 WPF 或 UWP 请看 将 WPF、UWP 以及其他各种类型的旧样式的 csproj 文件迁移成新样式的 csproj 文件 - walterlv 现在很多项目,测试项目都使用新格式,建议在测试项目试试...WPF、UWP 以及其他各种类型的旧样式的 csproj 文件迁移成新样式的 csproj 文件 - walterlv 删除多余文件 现在 VisualStudio 2017 项目格式不需要使用 AssemblyInfo...稍微解释一下上面的代码,在一开始使用的 OutputType 是告诉 VisualStudio 生成一个窗口应用程序。...现在对于 UWP 项目,使用上面的方法是编译不通过。如果需要支持 UWP 的 VisualStudio 2017 项目格式,请看 新 csproj 对 WPF/UWP 支持不太好?...to new csproj: Visual Studio 2017 upgrade guide 将 WPF、UWP 以及其他各种类型的旧样式的 csproj 文件迁移成新样式的 csproj 文件 -
新 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!...关于项目文件格式的迁移,我和 林德熙 都写过文章: 从以前的项目格式迁移到 VS2017 新项目格式 - 林德熙 将 WPF、UWP 以及其他各种类型的旧 csproj 迁移成基于 Microsoft.NET.Sdk...,设置 ExtrasEnableWpfProjectSetup 为 true 后,WPF 的类型将直接可用,而无需额外引用。...(当然,不设置也是可以的,只是需要手动引用。) ? 没错,真的如此简单!在我们猜测的 .NET Core 3 支持 WPF/UWP 项目格式之前,这应该算是最简单的迁移方案了!...至于项目结构的效果,可以看下图所示(包含 UWP 的多目标): ?
我们今天要聊的内容主要桌面开发四个方面:Windows平台、.NET Core 3 平台上的WPF,Winform, 应用打包解决方案 MSIX 和 XAML 群岛访问原来UWP的控件,让我们的应用程序迅速现代化...下载地址:https://dotnet.microsoft.com/download/dotnet-core/3.0 .NET可移植性分析器可帮助您识别代码中可移植或不可移植到. net Core 的部分...开始,可以将 UWP XAML 控件直接添加到与窗口句柄 (HWND) 关联的 WPF、Windows 窗体或 C++ Win32 应用中的任何 UI 元素。...这意味着,你可以将最新的 UWP 功能(例如 Windows Ink 和支持 Fluent Design System 的控件完全集成到 Windows 以及桌面应用的其他显示表面中去。...为了解决这个问题,微软创建了两个新控件:WinForms XAML Host和WPF XAML Host,使开发人员可以把UWP编写的UI嵌入到现有WinForms/WPF应用程序。
到这里为止都和预期的一样,我之后还尝试了将 UWP 应用移植到 WinUI ,基本上只需要将 Windows.UI 命名空间改为 Microsoft.UI就可以了,XAML 和 C# 代码完全不用变。...不过从目前的移植难度上来看,将来正式发布后应该可以完整地将 UWP 的 UI 的开发经验运用在 WinUI 上。 4....为了验证 WinUI 的性能我写了下面这些代码,然后分别移植到 WPF .Net Framework 4.8、WPF .NET 5、UWP、WinUI(WPF 和 UWP/WinUI 的代码稍微有一点不同...()顺便一提,将测试代码中旋转的矩形减少为10个,WPF 的程序占用 32% GPU,而 WinUI 占用 70 多%。)...假使不想花精力将现有项目迁移到 WinUI,或者对来自 UWP 的 WinUI 没信心,又或者舍不得 Windows 7 的用户,并且对触摸没需求,当然可以继续选用 WPF,基于 .NET Core 的
它支持4种类型的应用程序:控制台、ASP.NET Core、云和通用Windows平台(UWP)。...Windows Forms和Windows Presentation Foundation(WPF)并不包含在.NET Core中。 从技术上讲,.NET Core仅支持控制台应用程序。...该标准让应用程序开发人员知道,他们可以依赖于一套始终如一的API。 每个.NET版本都对应一个.NET Standard版本。 API一致,将应用程序移植到不同的托管实现以及提供工具都会更简单。...你还可以针对多个.NET实现构建一个库项目。 你还可以构建特定平台API的.NET Standard封装器。 .NET Standard vs 可移植类库 可移植类库做的不是同一件事吗?....NET Core是一个托管框架,针对构建控制台、云、ASP.NET Core和UWP应用程序进行了优化。
在实际的项目我也有一个应用是需要这个功能,这个就是 UWP图床: https://www.microsoft.com/store/apps/9nblggh562r2 这个软件可以快速将图片上传到图床,图床可以使用默认的也可以自己设置...现在尝试运行一下这个项目,然后找到一张 jpg 图片,右击打开方式选择这个项目,这时就可以看到 UWP 应用显示图片。...加上图片就是在刚才打开的功能可以看到图标,选择一个好看的图片,在用户将打开这个文件的默认应用设置为自己的应用时,就会使用这个应用设置的图标 添加 Verb 也就是在文件右键菜单里面显示多个其他选项,注意此时的...UWP 应用虽然可以在文件里面显示右键菜单,但是仅限于被关联的文件。...> uap3:Extension> 现在部署完成了应用,将 x 打开关联到应用,就可以在 x 的文件右击看到了逗比和林德熙是逗比而这两个如何在应用判断用户想要的是什么打开不同页面 在
创建一个 UWP 使用 VisualStudio 2017 项目格式请看将 WPF、UWP 以及其他各种类型的旧样式的 csproj 文件迁移成新样式的 csproj 文件 - walterlv 请看最简单创建一个...UWP 项目的代码 uap10.0.16299...所有的下面的代码都是放在 Project 标签里 uap10.0.16299...但是很多小伙伴都是设置打包的版本号和项目版本号相同,这样如果有人说某个nuget出现问题,可以很快找到是哪里的问题。...参见:Roland Weigelt - How to Disable Warnings in Generated C# Files of UWP Apps ?
我们看到依赖项中,除了 UAP(Windows 10 SDK)和 Microsoft.Toolkit.Uwp,还有一个依赖项是 Win2D.uwp,这和我们今天分享的内容有很紧密的关联。...surfaceBrush); CompositionBrush = effectBrush; } } 大致实现过程是:加载 ImageBlendBrush 画刷所用的 Bitmap,到... 是 WPF RadialGradientBrush 的移植,使用 Win2D FillRectangle 的方式实现绘制过程....gradientBrush.Dispose(); return true; } return false; } 看一下使用方法和显示效果吧: 和 WPF...总结 到这里我们就把 UWP Community Toolkit V2.2.0 中实现的 7 种画刷介绍完了,我们更多的从源代码的实现和 SDK 的简单实用角度来分析,如果大家有兴趣,可以多尝试每种画刷里的参数设置不同值时的效果
在此改进之前,如果不先尝试使用该功能,客户将无法知道 XAML Hot Reload 是否正在工作,这会引起混乱。...以前,此功能仅适用于通用 Windows 平台(UWP),但现在支持 WPF .NET Framework,WPF .NET Core 和 UWP 应用程序。...在此版本中,我们将这种经验带回 UWP 开发人员,并增加了对 WPF .NET Core 应用程序的支持。...资源和模板 合并资源字典: 现在,可以使用解决方案资源管理器提供的新功能,轻松地将 UWP / WPF 项目中的现有资源词典与任何有效的 XAML 文件合并。....NET 桌面应用程序 包括 WinForms,WPF 和 UWP。
包括.NET Core 5 、ASP.NET 5 这些东西,但如果还不想跟得那么新、或是现行的项目无法这么轻易转换到新的架构下,还是可以继续在 full-stack 的 .NET Framework 上来建构各种应用程序...,包括 WPF、ASP.NET 4.6 等等,在这条路线下,还是能够用一切熟悉的架构、工具来运行应用程序。....NET Framework 4.6 将集成在Windows 10中并且Vista以上版本将可通过 Windows Update 获得更新;RyuJit将会是.NET x64的JIT默认编译器; Windows...10 UAP 应用将会全部基于.NET Native;RTM时.NET Framework将使用Roslyn编译!...感兴趣的网友可以到 Channel 9 网站上回顾一下。
您的UWP应用程序必须至少针对Windows 10版本1809(构建18362) 功能概述(Features Overview) Feature UWP WPF UWP (Uno) iOS (Uno...Animations.Primary="{StaticResource SampleColorAnimation}" /> 覆盖全局默认值 如果需要全局更改默认动画值之一(例如,默认Duration为750而不是500),则可以在应用程序的初始化代码中调用...目标是将所有动画合并为一个具有有意义名称的文件,以便任何开发人员都能准确地了解将动画应用到FrameworkElement中的内容。...[28] Animation settings for WPF[29] Animation settings for Uno[30] 你的应用程序现在有一组通用动画可以使用了。...ResourceDictionary.MergedDictionaries> 您的应用程序现在有一系列全局默认的动画可以使用了
Windows Presentation Foundation 依赖的是 DirectX, 可以从这里了解到更详细的 WPF 的架构说明:Architecture - WPF .NET Framework....NET | Microsoft Learn 也可以将旧的程序升级到 .NET Core Upgrade a WPF app to .NET 8 - WPF .NET | Microsoft Learn...(这是个人理解,不一定准确,也可以将 WPF 称为 WinUI1) WinUI2 是为 UWP 提供的独立 nuget 包,为了解决 UWP 控件的操作系统依赖问题。...后者与 WPF 等类似,就是通常的 Windows 桌面程序。 WinUI3 可以通过 XAML IsLands 的方式,嵌入到 WPF/WinForms 中。...然后 Avalonia 还有一个 XPF 方案,可以低成本迁移 WPF 程序到 macOS 和 Linux 端,不过是收费的。
微软在Build开发者大会上宣布,.NET Core 3将包含对Windows桌面应用的支持。...这意味着开发人员可以在.NET Core中使用WinForms、WPF或UWP编写Windows平台应用了。...虽然这些GUI框架仅存在于Windows上,但这种支持让开发人员更容易重用应用程序逻辑的代码。....NET Core 2支持的三种语言(C#、VB和F#)在.NET Core 3中仍然支持,它们都可以用于构建Windows桌面应用程序。...似乎,社区的最大愿望是扩展这些Windows GUI工具包并将它们现代化,而不是把它们移植到macOS或Linux上。
Net Core 3 的亮点是支持Windows桌面应用程序,特别是Windows窗体、Windows Presentation Framework (WPF)和UWP XAML。...能够在WPF和Windows窗体应用程序中驻留UWP XAML控件。 能够托管UWP浏览器和媒体控件,支持现代浏览器和媒体内容和标准。...从更高层次的视角来看,你可以把WPF想象成在DirectX上的富层,而Windows则是在GDI Plus上的更薄层。...Side-by-side 应用程序本地部署 . net核心部署模型是Windows桌面开发人员在. net Core 3中体验到的最大好处之一。简而言之,你可以以任何你想要的方式安装。...但是我们不打算为EF6添加任何主要的新特性.EF Core将扩展为新的特性,并将保留所有类型的新应用程序的推荐数据堆栈。如果您想利用新特性和改进性能,我们建议您移植到EF Core。
按照微软的官方文档,大部分的文档都会说如果用了 XAML Islands 等技术的时候,需要新建一个打包项目,将 WPF 应用打包为 msix 等才可以进行分发和使用。...但是实际上不打包也可以,此时可以和此前的 Win32 应用一样的分发方式进行分发,可以支持到 Win7 系统,当然了在 Win7 系统上可用不了 UWP 的控件,但是至少应用软件自身可以在 Win7 继续运行的...可以通过判断系统版本决定功能是否开放,如是 Win10 版本,那么开放 UWP 控件部分的使用 如果新建一个空的 .NET Core 3.1 的 WPF 项目,然后只是安装了必要的 NuGet 包之后,...-- 指示该应用程序可以感知 DPI 且 Windows 在 DPI 较高时将不会对其进行 自动缩放。...引用 UWP 做高性能笔迹文档请看: WPF 使用 Microsoft.Toolkit.Wpf.UI.Controls 的 InkCanvas 做高性能笔迹应用 WPF 使用 Microsoft.Toolkit.Wpf.UI.Controls
ASP.NET Core和EF Core之间的差距越来越少,在提升.NET Framework兼容性的同时也提高了可移植性。...甚至WinForms和WPF也将运行在.NET Core 3之上。XAML Islands允许WinForms和WPF托管UWP。...XAML Controls可以实现WinForms和WPF浏览器以及媒体UWP控制。对于WinForms进行了DPI修复。要做到这个,必须修改WinForms。...Kubernetes可以通过一款扩展程序得到支持。你也可以通过一款扩展发布到非容器的Linux应用程序服务。你还可以通过一款扩展发布到Azure容器服务。...旨在简化可以运行在任何浏览器中快速搭建单页应用程序的工作。你不需要了解AngularJS、 React或Vue等技术,但你可以使用开放web标准在客户端运行使用.NET搭建的web应用程序。
做过WPF开发的程序员对BusyIndicator应该不陌生,Extended WPF Toolkit 提供了BusyIndicator的开源实现,Silverlight Toolkit也有一个,这次想要把这个控件移植到...事实证明这是个正确的选择,只改动了几行代码就完美移植成功了。 2.3 改进 既然UWP有ProgressRing,我就不想用ProgressBar来展示Busy的状态。...UWP可以使用VisualState.Setters代替VisualState.Storyboard,这简化了大量XAML,为什么微软早十年没想到这个做法。...结语 BusyIndicator十分实用,毕竟已经经过多年的考验而代码基本没有更改,应该可以使用在UWP的实际项目中。...参考 Extended WPF Toolkit Silverlight Toolkit - CodePlex Archive UWP BusyIndicator · telerik UI For UWP
领取专属 10元无门槛券
手把手带您无忧上云