做windows原生开发的是不是多少沾点m属性啊

天怒 2026-07-01 16:57 1

WPF窗口不好看,受不了

自己绘制窗口+阴影。

于是就出现了一万个问题

我自己绘制的阴影,属于我自己窗口的一部分

鼠标不能穿过这个阴影去点击下面的东西,因为我的阴影是窗口,会吃掉用户的点击

如果我把它拖到屏幕的四角,进windows Aero Snap,四周会留下一部分我的自绘阴影


所以想解决这个问题的话,只能做模拟点击穿透,

想它真的全屏的话,就要去检测它是不是被窗口尺寸拖到四角两边或者全屏的情况,来取消我的自绘阴影

而即使这样的话还可能和第三方的窗口管理打架

还可能涉及到显示尺寸缩放、多显示器


想解决只能阴影删掉,用一个假的窗口来模拟阴影,走双hwnd。

假的窗口让它完全可以被穿透点击,只是一层视效。

这样的话,点击穿透和全屏的问题都解决了就等于我让一个新窗口寄生在我的宿主窗口上了。

那么我就要处理好同步、缩放。窗口管理等一万个问题。


所以原生windows开发就是一坨屎啊!

winui3那个狗屎一样的性能,把windows 11都给搞成什么样子?谁还敢用?

浏览器套壳生态已经乱杀四方了。用Electron就可以一键搞定这些狗屎问题。

微软那个windows K2流畅计划真的能make windows great again吗?


关键是,NEt那个包有个屁的原生啊?原生带70兆的内存占用和70兆的包体大小吗?

最新回复 (19)
  • Fr4nk1e 07-01 16:59
    1

    用codex开发了一个c#+winui的大型项目,还可以,不过确实winui的毛病特别多,例如x:bind还有binding元素,自己的示例都是bug,无语

  • Firefox‎ 07-01 16:59
    2

    你的问题1是能解决的

    有算是完美的方案做整个自绘制,但又不丢失圆角和阴影和其他功能的

    但是需要导包或者自己折腾


    千万不要自己做那种大圆角大阴影的自绘窗口,不好看



    NEt那个包有个屁的原生啊?原生带70兆的内存占用和70兆的包体大小吗



    这倒是,我也认为.net不是原生


    但是如果不考虑运行时,做出来的软件的体积还是挺小的


    但Windows平台除了.net这一套似乎没有更爽的了

  • Fr4nk1e 07-01 17:00
    3

    还有折叠与展开,特么的怎么调都是页面一跳一跳的,没办法平滑展开/折叠

  • 天怒 楼主 07-01 17:01
    4

    我一开始写了个初步的c#+wpf,让gpt自动迁移到winui3和c++自绘玩玩。一觉起来,发现winui3的bug比c++还多 ^-^

  • gadfly3173 07-01 17:04
    5

    dotnet开AOT的话,包体不会有70MB吧?Avalonia都没有这么大。


  • 天怒 楼主 07-01 17:04
    6

    和gpt研究了一晚上,基本都是要放弃自绘制用原生好像。搜了下双hwnd是主流解决方案。

    net主要是内存占用太大了。

  • Firefox‎ 07-01 17:05
    7

    avalonia是avalonia,winui是winui哈哈哈

  • Firefox‎ 07-01 17:06
    8

    net主要是内存占用太大了。



    还算可以接受的,4K屏幕,一个默认大小的窗口几十m

    正常占用


    macOS上的swiftui也是这样的


    想要低内存只能那种C++没有抗锯齿的

  • 天怒 楼主 07-01 17:08
    9

    不是窗口的问题。是net自己硬吃50m,没窗口也50m

  • gadfly3173 07-01 17:08
    10

    还真是,忘记WPF和Winform都是到处反射了。WinUI应该还是可以的吧,我记得starward就是WinUI GitHub - Scighost/Starward: Game Launcher for miHoYo - 米家游戏启动器 · GitHub

  • Firefox‎ 07-01 17:08
    11

    我知道,托管的代价是这样的

    要不就楼上的avalonia,aot之后就没托管了

  • 子兮 07-01 17:09
    12

    打包的话 需要注意吗 当前项目 mac端是开发好了 我在windows上测试兼容好难受

  • Firefox‎ 07-01 17:10
    13

    搜了下双hwnd是主流解决方案



    大概是这种方案

    反正响应一下windows一些消息就行了


    简单点就用ControlzEx这个库就能实现得七七八八了


    或者看看其他的库怎么做的,一大堆做得还可以的

  • Firefox‎ 07-01 17:13
    14

    2026年应该有好转
    WinUI3要改名成WinUI了,哈哈
    不过我宁愿给WPF加一个Fluent主题也不要用WinUI3,dotnet9以上自带Fluent主题,还算好看
    [image]
    [image]
    之前没事干做着玩的(WPF+Fluent+GLM 5.1)


    其实wpf+fluent表现还可以的


    搜了一下原来那个便签是你做的啊


    怪不得你在吐槽哈哈哈

    我要笑死了


    你这个需求是难搞的

  • 天怒 楼主 07-01 17:14
    15

    让codex自己打包就好了吧,测几次打包方式就可以了

  • 天怒 楼主 07-01 17:15
    16

    属于是给自己狠狠的上强度了,只要想抠细节,一万个问题等着我。

  • 天怒 楼主 07-01 17:15
    17

    主要是windows 11上那个雷霆大延迟,真的让人碰都不敢碰。

  • 金陵雪 07-01 17:16
    18

    我前段时间做一个PC管家就是,把自己恶心到了,现在不做windows只做linux

  • Firefox‎ 07-01 17:16
    19

    一样的,其实是需求问题

    你在mac上做类似的需求一样会遇到各种问题


    这就是框架解决不了的

    可以考虑一下自己维护一套技术栈

* 帖子来源Linux.do
返回