最近在学习 winui3 ,想着这应该是目前 win 平台最现代的图形框架,应该还是值得学习的,但是在看到本地化功能的时候,我觉得有点不爽。
按照官方文档的说法,要先把字符串存到 resw 文件里,然后在 XAML 里引用 x:Uid ,程序就可以根据系统区域自动识别了。
<TextBlock x:Uid="Greeting"/>
但是这样做似乎有个问题,就是只能在程序打开的时候定好区域,无法动态修改。我看到一些 win 小工具带有语言菜单,可以运行的时候动态修改显示语言。
想要在 winui3 中实现这样的功能,官方文档倒是也有相关内容 https://learn.microsoft.com/en-us/windows/uwp/app-resources/localize-strings-ui-manifest#load-a-string-for-a-specific-language-or-other-context
但是这个例子似乎只适合少量界面变化,不好做全局显示变化。感觉还不如自己实现一套逻辑动态根据区域设置显示语言的功能,不知道大家怎么看?
最后我想吐槽一下,怪不得现在说桌面客户端没人开发了,感觉光从开发工具的便利性上就被移动端完爆了。现在移动端开发各种热重载边改边看,开发体验丝般润滑,点名表扬 flutter 。桌面端 winui3 稍微改点东西程序就要完全重启,启动速度还贼慢,说是原生开发但是各种功能实现也不舒服,总之就是给人一种硬邦邦的感觉。就这种体验,能比人家好才怪了。
1
Danswerme 25 天前
桌面开发有没有类似前端热重载这种机制吗?我最近也想学习下 Windows 程序开发,写点小工具,你说的“稍微改点东西程序就要完全重启”,如果真是这样开发效率也太低了吧。
|
![]() |
2
DTCPSS 25 天前
|
![]() |
5
techstay OP @Danswerme flutter 支持,也有 windows 版,我学了一下感觉还不错,热重载非常方便,就是不知道算不算桌面端开发,好像也没瞧见几个用 flutter 开发的桌面程序😓
|
![]() |
6
techstay OP 我好想也知道为什么 Linux 桌面软件生态不行的原因了,微软这么大的公司,给自家系统做的开发工具都这么不好用,linux 生态里各是各家这种,也难为这些 linux 程序员了。
|
7
vituralfuture 24 天前 via Android
我实习的时候见过 qt 都能热重载的,原理是通知进程重新链接动态库
|