V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
stitch18

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

  •  3
     
  •   stitch18 ·
    IUpdatable · Sep 2, 2021 · 4606 views
    This topic created in 1699 days ago, the information mentioned may be changed or developed.

    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 replies    2021-09-05 22:43:21 +08:00
    Removable
        1
    Removable  
       Sep 2, 2021
    .Neter 送上一个 star
    xuxuzhaozhao
        2
    xuxuzhaozhao  
       Sep 2, 2021
    好!我也来一个 star
    towser
        3
    towser  
       Sep 2, 2021
    已 star
    7gugu
        4
    7gugu  
       Sep 2, 2021 via iPhone
    牛逼啊!
    madlifer
        5
    madlifer  
       Sep 2, 2021
    曾经的.neter 送上一个 Star
    GM
        6
    GM  
       Sep 2, 2021
    要求版本太高了,建议适配 4.5,如果有可能的话,适配 4.0,以便支持死而不僵的 XP 。
    ONEO666
        7
    ONEO666  
       Sep 2, 2021
    看你正在找工作,有兴趣邮件联系:b25lby5tZUBvdXRsb29rLmNvbQ,给你发邮件被 163 当垃圾邮件了,发不过去
    stitch18
        8
    stitch18  
    OP
       Sep 2, 2021
    @GM 我之前甚至考虑过直接做一个跨平台的库,但调研一番之后,有两点考虑,一是平时主要用 Win10 做开发和测试,其它系统基本不用,开发和测试就很难覆盖到,如果用户使用之后发现问题找我反馈,我去复现核实的成本就太高了。二是,过低版本的语法、功能以及依赖模块都要进行调整适应,时间成本也太高。
    stitch18
        9
    stitch18  
    OP
       Sep 2, 2021
    @1217950746 我的 Outlook 邮箱与 GitHub 用户名相同,已经给你发了一封打招呼的邮件
    GM
        10
    GM  
       Sep 2, 2021
    @stitch18 适配 4.0 确实挺麻烦的,但是适配 4.5 还算可以,不难。
    12101111
        11
    12101111  
       Sep 2, 2021
    @GM 现在死而不僵的是 win7 64bit, xp 已经死了, 大把的生产力软件只有 64 位的
    ijrou
        12
    ijrou  
       Sep 2, 2021
    用着卡卡的。。。
    GM
        13
    GM  
       Sep 2, 2021
    @12101111
    XP 没死,一线环境还有大量在用,起码 10%,如果不怕丢这些客户的话可以不考虑。
    stitch18
        14
    stitch18  
    OP
       Sep 2, 2021
    @ijrou 在低配电脑上不太流畅是可能的,应该还到不了卡的情况吧。主要原因是为了达到高仿效果,整体是透明效果处理,窗体边框和阴影进行了细调,WPF 在处理这类透明情况的效率好像并不高,从效率方面讲确实不是最优做法(如果有更好解决方案或优化方法也欢迎提出来)。再者是考虑后面动态切换主题的情景,大部分资源都是动态加载,应该也有关系。
    mmdsun
        15
    mmdsun  
       Sep 2, 2021 via Android
    @GM win7 也能安装 4.7.2 问题不大。而且现在微软都建议建议用 4.8 版本的了
    anxn
        16
    anxn  
       Sep 2, 2021 via Android
    这个必须 star
    Soar360
        17
    Soar360  
       Sep 2, 2021
    这个必须支持一下
    enki0423
        18
    enki0423  
       Sep 3, 2021 via iPhone   ❤️ 1
    为啥要仿微信 ui 啊,微信 pc 端 ui 做的那么垃圾
    jedihy
        19
    jedihy  
       Sep 3, 2021
    @enki0423 确实,微信 UI 不好看。
    wzw
        20
    wzw  
       Sep 3, 2021 via iPhone
    楼主坐标在哪?我有个活请你接?可以看我帖子
    stitch18
        21
    stitch18  
    OP
       Sep 3, 2021
    @enki0423 直接原因是,我本来打算仿一个局域网版的微信,时间有点紧还没做完,就先把 UI 整理出来了。客观讲微信桌面版的 UI 确实一般,但是一个事物只要从一开始没有太强烈的排斥感,用久了自然也容易产生熟悉感。加之微信用户量巨大,概率上讲有需求使用类似界面做东西的开发者也会不少,所以就有了这个开源项目。
    stitch18
        22
    stitch18  
    OP
       Sep 3, 2021
    @wzw 我现在在新加坡,正在找回国的工作。公开论坛,微信我就不留了,想联系我的话,项目主页里有邮箱和公众号。
    CitizenR
        23
    CitizenR  
       Sep 3, 2021
    赞,居然还在坚持做 WPF,已 star 。
    enki0423
        24
    enki0423  
       Sep 3, 2021 via iPhone
    @stitch18 👍
    ragnaroks
        25
    ragnaroks  
       Sep 4, 2021
    可以考虑下适配 dotnet 5.0/3.1
    zwh418346771
        26
    zwh418346771  
       Sep 5, 2021
    star+1
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   983 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 71ms · UTC 20:27 · PVG 04:27 · LAX 13:27 · JFK 16:27
    ♥ Do have faith in what you're doing.