WeUiSharp:基于 WPF 实现的仿 Windows 桌面版微信 UI 界面库 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
stitch18
V2EX    分享创造

WeUiSharp:基于 WPF 实现的仿 Windows 桌面版微信 UI 界面库

  •  3
     
  •   stitch18
    IUpdatable 2021-09-02 10:45:07 +08:00 4110 次点击
    这是一个创建于 1509 天前的主题,其中的信息可能已经有所发展或是发生改变。

    WeUiSharp

    基于 WPF 实现的仿 Windows 桌面版微信 UI 界面库

    An unofficial UI library for Windows WeChat based on WPF implementation

    项目主页:https://github.com/IUpdatable/WeUiSharp,欢迎 star

    .NET Framework Version nuget-version Nuget

    Features

    • .NET Framework >= 4.7.2
    • 多语言动态切换
    • 主题动态切换( TODO:深色主题)
    • MIT 协议,开源可商用

    Overview

    Overview

    Getting Started

    1. 创建一个基于. NET Framework 4.7.2+ 的 WPF 项目(推荐使用:Prism 框架,直接使用 Prism 模板 创建项目);
    2. NuGet 安装 WeUiSharp
    3. 修改文件 App.xaml,添加以下资源:
    <Application.Resources> <!-- 下面部分为添加内容 --> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="pack://application:,,,/WeUiSharp;component/ControlsResources.xaml"/> <weui:ThemeResources RequestedTheme="Light"> <weui:ThemeResources.ThemeDictionaries> <ResourceDictionary x:Key="Light"> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/WeUiSharp;component/ThemeResources/Light.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> <ResourceDictionary x:Key="Dark"> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/WeUiSharp;component/ThemeResources/Dark.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </weui:ThemeResources.ThemeDictionaries> </weui:ThemeResources> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> 
    1. 修改文件 MainWindow.xaml,将 Window 改为 weui:Window,并添加 weui 的引用:
    <weui:Window xmlns:weui="https://github.com/IUpdatable/WeUiSharp" Title="Hello WeUiSharp" ... > <Grid> </Grid> </weui:Window> 
    1. 修改 MainWindow.xaml.cs,取消从 Window 的继承关系
    public partial class MainWindow { public MainWindow() { InitializeComponent(); } } 
    1. 编译运行,应该就可以看到下面效果的界面:

    Hello Wrorld

    完整代码:WeUiSharp.HelloWorld

    基于 Prism 框架的 Hello Wrorld 项目完整代码: WeUiSharp.HelloWorldWithPrism

    Components

    26 条回复    2021-09-05 22:43:21 +08:00
    Removable
        1
    Removable  
       2021-09-02 10:52:03 +08:00
    .Neter 送上一个 star
    xuxuzhaozhao
        2
    xuxuzhaozhao  
       2021-09-02 11:02:19 +08:00
    好!我也来一个 star
    towser
        3
    towser  
       2021-09-02 11:15:40 +08:00
    已 star
    7gugu
        4
    7gugu  
       2021-09-02 11:18:25 +08:00 via iPhone
    牛逼啊!
    madlifer
        5
    madlifer  
       2021-09-02 11:28:03 +08:00
    曾经的.neter 送上一个 Star
    GM
        6
    GM  
       2021-09-02 11:34:18 +08:00
    要求版本太高了,建议适配 4.5,如果有可能的话,适配 4.0,以便支持死而不僵的 XP 。
    ONEO666
        7
    ONEO666  
       2021-09-02 14:49:56 +08:00
    看你正在找工作,有兴趣邮件联系:b25lby5tZUBvdXRsb29rLmNvbQ,给你发邮件被 163 当垃圾邮件了,发不过去
    stitch18
        8
    stitch18  
    OP
       2021-09-02 16:13:42 +08:00
    @GM 我之前甚至考虑过直接做一个跨平台的库,但调研一番之后,有两点考虑,一是平时主要用 Win10 做开发和测试,其它系统基本不用,开发和测试就很难覆盖到,如果用户使用之后发现问题找我反馈,我去复现核实的成本就太高了。二是,过低版本的语法、功能以及依赖模块都要进行调整适应,时间成本也太高。
    stitch18
        9
    stitch18  
    OP
       2021-09-02 16:16:12 +08:00
    @1217950746 我的 Outlook 邮箱与 GitHub 用户名相同,已经给你发了一封打招呼的邮件
    GM
        10
    GM  
       2021-09-02 16:23:40 +08:00
    @stitch18 适配 4.0 确实挺麻烦的,但是适配 4.5 还算可以,不难。
    12101111
        11
    12101111  
       2021-09-02 17:21:49 +08:00
    @GM 现在死而不僵的是 win7 64bit, xp 已经死了, 大把的生产力软件只有 64 位的
    ijrou
        12
    ijrou  
       2021-09-02 17:22:14 +08:00
    用着卡卡的。。。
    GM
        13
    GM  
       2021-09-02 17:34:59 +08:00
    @12101111
    XP 没死,一线环境还有大量在用,起码 10%,如果不怕丢这些客户的话可以不考虑。
    stitch18
        14
    stitch18  
    OP
       2021-09-02 17:43:16 +08:00
    @ijrou 在低配电脑上不太流畅是可能的,应该还到不了卡的情况吧。主要原因是为了达到高仿效果,整体是透明效果处理,窗体边框和阴影进行了细调,WPF 在处理这类透明情况的效率好像并不高,从效率方面讲确实不是最优做法(如果有更好解决方案或优化方法也欢迎提出来)。再者是考虑后面动态切换主题的情景,大部分资源都是动态加载,应该也有关系。
    mmdsun
        15
    mmdsun  
       2021-09-02 18:52:42 +08:00 via Android
    @GM win7 也能安装 4.7.2 问题不大。而且现在微软都建议建议用 4.8 版本的了
    anxn
        16
    anxn  
       2021-09-02 19:11:19 +08:00 via Android
    这个必须 star
    Soar360
        17
    Soar360  
       2021-09-02 22:31:32 +08:00
    这个必须支持一下
    enki0423
        18
    enki0423  
       2021-09-03 01:51:02 +08:00 via iPhone   1
    为啥要仿微信 ui 啊,微信 pc 端 ui 做的那么垃圾
    jedihy
        19
    jedihy  
       2021-09-03 02:13:06 +08:00
    @enki0423 确实,微信 UI 不好看。
    wzw
        20
    wzw  
       2021-09-03 07:14:46 +08:00 via iPhone
    楼主坐标在哪?我有个活请你接?可以看我帖子
    stitch18
        21
    stitch18  
    OP
       2021-09-03 10:31:12 +08:00
    @enki0423 直接原因是,我本来打算仿一个局域网版的微信,时间有点紧还没做完,就先把 UI 整理出来了。客观讲微信桌面版的 UI 确实一般,但是一个事物只要从一开始没有太强烈的排斥感,用久了自然也容易产生熟悉感。加之微信用户量巨大,概率上讲有需求使用类似界面做东西的开发者也会不少,所以就有了这个开源项目。
    stitch18
        22
    stitch18  
    OP
       2021-09-03 10:33:31 +08:00
    @wzw 我现在在新加坡,正在找回国的工作。公开论坛,微信我就不留了,想联系我的话,项目主页里有邮箱和公众号。
    CitizenR
        23
    CitizenR  
       2021-09-03 10:49:05 +08:00
    赞,居然还在坚持做 WPF,已 star 。
    enki0423
        24
    enki0423  
       2021-09-03 21:58:03 +08:00 via iPhone
    @stitch18
    ragnaroks
        25
    ragnaroks  
       2021-09-04 19:24:23 +08:00
    可以考虑下适配 dotnet 5.0/3.1
    zwh418346771
        26
    zwh418346771  
       2021-09-05 22:43:21 +08:00
    star+1
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3824 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 10:29 PVG 18:29 LAX 03:29 JFK 06:29
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86