UWP程序开发的一些心得体验

因为想要一个为自己量身定制的英汉字典程序,所以就开始了自己的第一次UWP程序开发。

动机

我的需求其实非常简单,有一个软件能够查词就行了,包括英汉释义和英英释义,最好来点例句。但是我的查词习惯是随时可能查词,查完就关掉软件,所以很多巨无霸词典软件我都不喜欢,启动速度太慢了,还给我来几个弹窗广告。

我最常用的英汉词典程序是微软必应词典(UWP),它的启动速度、查词速度都非常快,而且没有广告,没有弹窗,完美符合我的需求。

非常可惜的是,微软必应词典很久没更新了,它的 UI 实在是太丑了(在 Win11 带来最新的设计之后,我已经看不下去它的设计了)。

所以我就打算偷必应词典的API,自己做个词典程序。因为我的需求本身比较简单,所以这个程序难度不算很大。

我希望这个词典程序有 Win11 Style 的设计,所以选择其实不多,有三个:WinUI 2(UWP) 或者 WinUI 3(WindowsAppSdk、MAUI)。

在我项目开始的时候,WinUI 3 才刚出 Preview 1,还没有带来 Win11 Style,所以这个方案不能选,只能使用 UWP 方案了。

流畅的开发体验

我之前开发过 WPF 程序和 Xamarin 程序,所以对 XAML 这一套还是比较熟悉的。这三套方案都用 XAML 来描述 UI 布局,虽然语法一样,但是细节还是有些不同。比如 UWP 就没有 DockPanel 这样的布局,比如 Xamarin 和 UWP 的 Grid 用法略有不同。

要了解这些,主要还是看微软的文档。微软的文档写的很详细,所以文档上有的内容基本没遇到问题,大多符合直觉。

主题支持

未完待续。。。

多语言支持

未完待续。。。

遇到的一些问题

当然还是会有问题的啦。

自定义标题栏处无法修改窗口大小

这个问题的具体表现是设置自定义标题栏区域后,无法通过顶部那块区域修改窗口的大小。我换了很多种关键词去搜索,都没搜到类似的问题,就好像我是全网第一个遇到这个问题的人。我又是抄的微软文档的代码,所以我就先入为主觉得代码是没问题的,以为是哪里不兼容。于是我先把 WinUI 库降级,又降级了很多库,问题依旧。

最后我发现,微软文档提供的代码让自定义标题栏区域顶部多了 8 个单位的 Margin。自定义标题栏顶部和窗口边缘没挨在一起,所以不能通过自定义标题栏修改窗口大小。

不知道如何自定义主题

也就是 DarkTheme、LightTheme 的设置。默认是自动跟随系统的,但是很多软件都支持自定义主题,所以我也想加入这个功能,但是找了半天没有找到相关的文档。

这个问题的解决方法是抄微软开源的计算器的代码(Calculator)。

未完待续。。。

作者

uint128.com

发布于

2021-10-23

更新于

2022-08-22

许可协议

评论