在当前所有渲染框架里面,做 2D 渲染的,最好的框架是 Win2d 这个提供了大量底层接口封装,不仅性能高同时接口设计非常好 在很久之前,只有在 UWP 等现代应用才能使用 Win2d 而 WPF 是不能使用的...需要 VisualStudio 2017 和以上,点击Visual Studio下载链接下载最新的工具 需要在 VisualStudio 的开发添加 UWP 和桌面开发 需要在设备安装 .NET Framework...有小伙伴说 45 也是可以的,但是步骤会更多,建议小伙伴在看完本文测试过了才尝试降级 开发和运行设备是 Windows 10 版本 1903 和以上 开发设备上安装 UWP 的 SDK 版本是 18362...Microsoft.VCRTForwarders.140 System.Numerics.Vectors Win2D.uwp 如果有安装不上的,例如有下面提示 无法安装程序包“Win2D.uwp 1.23.0...你正在尝试将此程序包安装到目标为“.NETFramework,Version=v4.8”的项目中,但该程序包不包含任何与该框架兼容的程序集引用或内容文件。有关详细信息,请联系程序包作者。
本文将和大家介绍在 UWP 应用,或其他能接入 WinRT 的应用里,使用系统自带的分词库,对中文、英文等等自然语言的字符串文本进行分词 开始之前需要说明的是,现在不仅仅 UWP 应用,其他的 UI...详细请参阅 我的博客导航 的 WinRT 部分 本文将采用 UWP 作为例子,在 WPF 下调用的 API 也是相同的,许多代码都可以直接拷贝,不需要做更改 先新建一个 UWP 应用,由于本次采用的是...WinRT 提供的方法,直接就是平台自带提供,不需要安装额外的 NuGet 包 先看看分词的效果: 开始之前,先写一点有趣的界面方便进行测试,界面代码如下,本文所有的代码都可以在本文末尾找到下载方式...可以传入的 可以传入的语言文化字符串请参阅 BCP-47 标准文档 创建的过程中,由于不同的用户设备可能安装有不同的分词库,可能传入的语言文化对应的分词库是在当前设备上找不到的。...创建了 WordsSegmenter 对象,即可通过 GetTokens 方法进行分词,分词时可以看到分出的每个单词和对应的词在字符串里面的偏移量 以上就是 WinRT 使用系统自带的语言文化分词库对文本进行分词的方法
---- C++/WinRT 以下 C++/WinRT 的代码来自 Raymond Chen 的示例代码。...Raymond Chen 写了一个 UWP 的版本用于模仿 C++/WinRT 的线程切换效果。...在看他编写的 UWP 版本之前我也思考了可以如何实现一个 .NET / WPF 的版本,然后成功做出了这样的效果。...Raymond Chen 的版本可以参见:C++/WinRT envy: Bringing thread switching tasks to C# (UWP edition) - The Old New...+/WinRT envy: Bringing thread switching tasks to C# (UWP edition) - The Old New Thing C++/WinRT envy:
Console UWP apps Create a Universal Windows Platform console app 开发者可以使用 C++ /WinRT 或 CX /UWP 来创建 Console...,就可以使用 C++ /WinRT 或 CX /UWP 来创建 UWP Console App 了,开发过程和普通的 Console App 很类似。...同时 UWP Console App 也支持多实例运行,因为它的模板中在 manifest 中添加了 SupportsMultipleInstances 能力。...官方提出的几个 UWP Console App 的注意事项: 只能使用 C++ /WinRT 或 CX /UWP 来开发 目标必须是 桌面或 IoT 项目类型 应用中不能创建窗体,所以 MessageBox...同样的,多实例特性需要在 Visual Studio 中安装新的项目模板:Multi-Instance App Project Templates.VSIX, 安装后,使用 C# 和 C++ 都可以创建项目
可选属性 接口里的属性不全都是必需的。 有些是只在某些条件下存在,或者根本不存在。 例如给函数传入的参数对象中只有部分属性赋值了。...带有可选属性的接口与普通的接口定义差不多,只是在可选属性名字定义的后面加一个?符号。如下所示: interface Person { name: string; age?...: number; } 上面的例子中Person对象名字(name)是不可选的,age和gender是可选的。 只读属性 顾名思义就是这个属性是不可写的,对象属性只能在对象刚刚创建的时候修改其值。...来指定只读属性,如下所示: interface User { readonly loginName: string; password: string; } 上面的例子说明,当完成User对象的初始化后...readonly vs const 最简单判断该用readonly还是const的方法是看要把它做为变量使用还是做为一个属性。 做为变量使用的话用const,若做为属性则使用readonly。
NET 的多个实现有一个通用的 API 规范,称为 .NET Standard。本文简要介绍了这些概念中的每一个。...可选地,一个或多个应用程序框架。...可选的,开发工具。一些开发工具在多个实现之间共享。...通用 Windows 平台 (UWP) UWP 是 .NET 的一种实现,用于为物联网 (IoT) 构建现代的、支持触控的 Windows 应用程序和软件。...UWP 提供了许多服务,例如集中式应用程序商店、执行环境 (AppContainer) 和一组 Windows API,以代替 Win32 (WinRT) 使用。
xaml 做的 UI 和 C#、VB 写的后台 xaml 的 UI 和 C++ Native 写的后台 DirectX 的 UI 和 C++ Native 写的后台 JavaScript 和 HTML...他可以使用 xaml 做的前台,C#、VB、F#、C++写的后台。 不过需要知道,WPF 的C++ 后台使用的是托管的C++。 那么网上怎么好多小伙伴说 UWP 的性能比 WPF 好?...80% C++非托管。...UWP 发布的时候,因为使用的是 WinRT ,虽然底层和 WPF 一样使用的是 COM 但是添加了很多以前系统不支持的特性。...但是 UWP 是支持触摸的,鼠标、键盘。 对于 触摸的支持,uwp 是做的很好的,不仅支持了 4.7.1 的指针消息而且还内部支持很多手势。 对于AR的输入,uwp也是支持的。
> 不带 TargetPlatformVersion 即不在 TargetFramework 里加上 10.0.x 的版本号 默认微软官方推荐使用的是千年不更新的 Microsoft.Toolkit.Uwp.Notifications...UseWPF>true 此方式需要引用 Microsoft.Toolkit.Uwp.Notifications 且在 TargetFramework...接下来来将告诉大家一个我感觉比较清真的方法 使用 WPF 不安装 WindowsAppSDK 使用 WinRT 功能的方法 这篇博客提到的方法,即可不用指定 TargetPlatformVersion...就可以使用 WinRT 的功能 正好 Toast 就是 WinRT 的功能 具体的做法是先取出 Microsoft.Windows.SDK.NET.dll 和 WinRT.Runtime.dll 两个文件作为引用
CSV是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。最广泛的应用是在程序之间转移表格数据,而这些程序本身是在不兼容的格式上进行操作的(往往是私有的和/或无规范的格式)。...因为大量程序都支持某种CSV变体,至少是作为一种可选择的输入/输出格式。...使用库 Chilkat Nuget 安装 进入 https://www.nuget.org/packages/Chilkat.uwp/ 安装,或右击项目管理 Nuget 搜索 Chilkat 安装。..."); 设置完列标题,我们需要放入数据,注意我们有多少列标题,就可以写多少列,如果我们只有3个标题,和一个没有标题的列,那么直接添加一个 SetColumnName 为(3,"") 。...如果不知道文件读写,请看win10 uwp 读写文件 https://www.example-code.com/csharp_winrt/csv_create.asp ----
通用 Windows 平台工具可选组件 当然 .NET 5.0 也要装上。...可选 C++ 或 C# ,这里我选择了 C# 的“Blank App, Packaged (WinUI in Desktop)”项目,并选择了对应的 Windows 平台: 项目创建后 Visual...Visual Studio 生成的第二个项目是一个 Windows 应用程序打包项目,该项目经配置后可将应用生成为适合部署的 MSIX 程序包。 也就是说 UWP 项目中用于打包的部分被独立出来了。...这个项目还应该是解决方案的启动项目。运行这个项目后创建的应用会添加到开始菜单中,这点也和UWP一样。...我觉得大致方向没错,WinUI 对 C++、WPF、UWP 开发者都是个新的工具新的机遇,可以关注一下。 6. Q & A Windows 7 怎么办?
xaml 做的 UI 和 C#、VB 写的后台 xaml 的 UI 和 C++ Native 写的后台 DirectX 的 UI 和 C++ Native 写的后台 JavaScript...他可以使用 xaml 做的前台,C#、VB、F#、C++写的后台。 不过需要知道,WPF 的C++ 后台使用的是托管的C++。 那么网上怎么好多小伙伴说 UWP 的性能比 WPF 好?...80% C++非托管。...UWP 发布的时候,因为使用的是 WinRT ,虽然底层和 WPF 一样使用的是 COM 但是添加了很多以前系统不支持的特性。...但是 UWP 是支持触摸的,鼠标、键盘。 对于 触摸的支持,uwp 是做的很好的,不仅支持了 4.7.1 的指针消息而且还内部支持很多手势。 对于AR的输入,uwp也是支持的。
js中可选的回调函数 1、then的回调函数不是严格要求必写的。如果不写,promise也会用上一个返回的最终值来传递。...function(result) { console.log('got a result', result); }); // 输出结果是: // // got a result 42 2、如果当前的then...没有传输回调函数,该函数将直接使用前一个promise返回的最终值来解决下一个promise。...handler.onResolved) { handler.resolve(value); return; } 以上就是js中可选的回调函数,希望对大家有所帮助。
UWP采用的是纯扁平化的设计,个人感觉极端了点,整个世界都是平的,导致App分不清层次,看不出重点。...做UWP应用的时候就想WinRT用的xaml和WPF差不多,WPF画阴影很轻松,WinRT应该也很方便吧,结果查了半天资料,硬是找不到解决方案。...只能自己来想办法了,当时首先想到了两种办法: 第一种:利用NineGrid图片 UWP是支持NineGrid图片,熟悉Android的应该知道点9图,一回事。...第三种:Win2D 基于第二种想法,用代码的方式应该是有办法的,后来找了下WinRT Direct2D的资料,可以通过Direct2D画出阴影,封装成库给App调用。...最后 “这么好的库实在是各位UWP程序猿行走江湖,奋力码砖之必备良库”。 “那么……在哪里才能搞得到呢?”。 “啊!
介绍 Nagisa 是一个开放源代码的支持多语言的下载实用工具,在 Windows 通用平台运行并以MIT许可发行。...Nagisa 采用 C++/CX 编写,只使用 WinRT API、Win32 API、WRL 和 STL,这是为了确保更高的执行速度和较小的程序大小。...在保证用户体验的情况下,Nagisa 通过优化运行效率以降低设备的功耗,从而能延长您设备的续航时间且为延缓全球变暖奉献力量。...总结来说 Nagisa 是一款UWP的下载工具 ---- 体验 Nagisa 0.3.23.0 下载测试文件 QQ 9.0.1.exe ? ? ? ?...下载进度条 有绿色 黄色 红色 三种颜色分别表示进行中 暂停 失败 在左下角可以看到当前的上传和下载速度 下载的文件可以提取下载链接和打开目标文件夹 ---- 系统需求和目前进度 支持系统: Windows
本文告诉大家在 dotnet 5 里,如何使用 WinRT 加上 Microsoft.Windows.SDK 的辅助来调用 WindowsRuntime 方法。...本文和大家演示如何在 WPF 应用里面用上 UWP 提供的 FolderPicker 类型 需要将原有的基于 .NET 5 的 WPF 应用的 csproj 替换 net5.0-windows 为 net5.0...尽管官方文档说可以使用 WinRT.Interop.InitializeWithWindow.Initialize 方法进行初始化,然而实际上我没有找到此 InitializeWithWindow 类型....MainWindowHandle; //WinRT.Interop.WindowNative.GetWindowHandle(this); //WinRT.Interop.InitializeWithWindow.Initialize...folderPicker.As(); initializeWithCoreWindow.Initialize(hwnd); 接下来就可以和 UWP
中使用GridViewEx,开发UWP应用。...无论是WinRT还是UWP应用,都会使用返回键导航。桌面WinRTx应用会在Xaml文件添加返回按钮。...但是在UWP应用中,非常灵活,桌面应用可以在标题栏中添加返回按钮,在移动设备中不仅能使用标题栏中的返回键,也可以使用物理返回键实现导航功能。UWP的方法比较通用,且不需要编写自定义的Xaml文件。...UWP平台下运行GridViewEx大部分的功能与WinRT保持一致。只有OnDragOver中的DragEventArgs.AcceptedOperation 属性需要重写。...显然UWP 中的GridView 将所有非空项的该属性都设置为None。因此,如果不重写OnDragOver 方法,Drop 事件就不会被触发。
C++ 或 Visual Studio 2019 的扩展可以在以下文档找到各自的下载链接: Windows 应用 SDK 的稳定通道发行说明 - Windows apps 创建好项目后就会发现 WinUI...迁移过程中需要将大部分 Windows.* 命名空间替换成 Microsoft.*。不过 Win2D 里还在用 Windows.* 命名空间,所以搞得有些混乱。...然后就是引用各种包,微软自己管理的 UWP 最常用的包大致上都有对应的 WinUI 版本,例如 Microsoft.Toolkit.Uwp.UI 替换为 CommunityToolkit.WinUI.UI...} private AppWindow GetAppWindowForCurrentWindow() { IntPtr hWnd = WinRT.Interop.WindowNative.GetWindowHandle...现在在 https://docs.microsoft.com/en-us/windows/apps/ 页面里甚至找不到 UWP 的入口,总之无论 UWP 还是 Windows App SDK 的文档都一片混沌
本文主要讲微软最新的sdk添加的功能,暂时还不能下载,到 7月29 ,现在可以下载是 16232 ,支持Neon效果。 实际上设置软件最低版本为 16232 就自动支持 Neon 效果。...String Templates { get; } : String Videos { get; } : String win10.16241.to.win10.16251.fulldiff 工具 介绍一下好用的工具...HappyStudio.UwpToolsLibrary.Auxiliarys 1.0.3 UWP工具库的辅助类库 HappyStudio.UwpToolsLibrary.Information 1.0.2...UWP 工具库的信息类库 HappyStudio.UwpToolsLibrary.Control 1.1.0 UWP 工具类库的控件库 HappyStudio.UwpToolsLibrary 1.0.4...给UWP工具类库的其他模块使用的依赖类库 WinRT XAML Toolkit for Windows 10 2.3.0 ----
UWP可以使用打电话功能,在PC是用Skype,在手机是直接使用电话功能。 UWP可以通过Skype打电话,那么如何通过应用间通讯,很简单使用Launcher。...Skype电话使用的URI是Skype:(电话号)?call Skype:(skype id)?...一个简单的方法是Uri格式:tel://{phoneNumber},这个电话也可以,按需要判断是手机 如果打电话这么简单,我就不会写这博客,我们还要判断设备。...UWP判断设备可以使用AnalyticsInfo.VersionInfo.DeviceFamily,我们判断设备可以选择使用手机的拨号,这个才是真的电话,垃圾Skype 我们需要先引用Windows Mobile...questions/39829139/make-telephone-call-from-windows-store-app-c-sharp-winrt
问题: 首先出现这个bug的是在我的vs2017社区版的ide上,这两天使用了出现了一个非常神奇的问题,就是我程序中的nuget包总提示找不到源文件,并且我点击Nuget还原的话还一直提示着一个问题...严重性 代码 说明 项目 文件 行 禁止显示状态 错误 项目 JJHL.WEB 的 NuGet 包还原失败: 找不到“11.0.2”版本的程序包“Newtonsoft.Json”。...,然而我这个项目统一升级过的使用svn中央版本控制器空控制的源码,出现这个问题的原因可能是我的同事使用了更加高版本的 Nettonsoft.json 程序包,而我的电脑c盘这个地方恰好又不存在,所以导致了这个原因...解决方法: 修改NuGet包管理器的源为: https://www.nuget.org/api/v2/ 单击工具>选择NuGet管理器>程序包管理器设置 ?...选择NuGet包管理器>程序包源>添加获取包源位置(https://www.nuget.org/api/v2/)名称可随意 ? 最后再重启vs,然后在点击NuGet还原就好了!!!
领取专属 10元无门槛券
手把手带您无忧上云