LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

CPF:一个跨平台 UI 开发解决方案框架,支持 Windows、Mac、Linux 和 Android 等多个操作系统

admin
2025年1月23日 22:58 本文热度 425

前言

创建一个能够无缝运行于多个操作系统的应用程序是一个关键需求。为了满足这一需求。

推荐一款全新的 C# 跨平台 UI 框架,提供强大的工具和支持,确保应用程序在 Windows、Mac 和 Linux(包括国产 Linux 发行版)上具有一致的运行效果,并且能够在 .NET Core 和 .NET Framework 4.0 环境下高效运行,甚至支持 Windows XP。

项目介绍

简洁、直观、强悍的.NET 跨平台UI开发框架。

框架理念和WPF类似,但是没有Xaml,直接用CSS和C#代码描述。

全面支持国产化,支持国产Linux + 龙芯、飞腾、兆芯、海光等CPU平台。

项目特点

  • 全面跨平台支持:基于 .NET Standard 2.0 和 .NET Framework 4.0,该框架通过 .NET Core 实现了真正的跨平台兼容性,覆盖 Windows、Mac 和 Linux(包括国产 Linux 发行版),并且在各个平台上提供一致的用户体验。

  • 不依赖系统控件:所有控件完全由框架自定义实现,确保在不同操作系统上的表现一致性,避免了因系统差异带来的问题。

  • 高级视觉效果:支持窗体和控件的任意透明度设置、异形窗体设计以及 SVG 图标显示,为应用带来现代感十足的视觉体验。

  • 丰富的交互功能:内置动画支持、数据绑定机制、MVVM 模式、CSS 样式等,简化了依赖属性和数据绑定的写法,提供了灵活的数据上下文和命令上下文绑定方式。

  • 开发与调试工具:提供设计器生成 C# 代码的功能,以及开发者工具用于查看和调试元素,极大地提高了开发效率。

  • 模板化设计:秉承 WPF 的设计理念,任何控件都可以通过自定义模板来实现各种复杂效果,赋予开发者极大的灵活性。

  • 一次编写,到处运行:除了少量平台特定 API 外,基本实现了代码的完全复用,显著减少了多平台开发的工作量。

  • 全面支持国产化:特别优化了对国产 Linux 和多种国产 CPU 平台(如龙芯、飞腾、兆芯、海光等)的支持,帮助我们开发高性能的应用程序。

架构说明

CPF(Cross-Platform Framework)是一个旨在提供跨平台 UI 开发解决方案的框架,支持 Windows、Mac、Linux 和 Android 等多个操作系统。其核心设计理念是通过模块化和适配器模式,确保应用程序在不同平台上具有一致的表现和性能。

主要组件

1、CPF

主要框架,提供了核心功能和基础架构。

2、CPF.Skia

使用 Skia 作为图形引擎的适配层,确保高质量的图形渲染和一致的视觉效果。

3、平台适配器

  • CPF.Windows:针对 Windows 平台的适配器。

  • CPF.Linux:针对 Linux 平台的适配器,包括对国产 Linux 发行版的支持。

  • CPF.Mac:针对 macOS 平台的适配器。

  • CPF.Android:针对 Android 平台的适配器。

使用说明

直接克隆或下载项目即可编译和运行。为了快速了解运行效果,可以直接启动 ConsoleApp1 示例程序。

CPF使用文档:http://cpf.cskin.net/Course/#/

扩展库

CEF 封装:CPF.CEF 是对 CEF(Chromium Embedded Framework)的封装,提供了一个跨平台的浏览器控件,适用于需要嵌入网页浏览功能的应用。

VLC 封装:CPF.VLC 是对 VLC 的封装,提供了一个跨平台的视频播放控件,适用于需要多媒体播放功能的应用。

关于设计器

设计师工具不开源,但提供了免费试用版本。免费模式下,用户可以刷新和预览设计效果,但不能进行拖拽操作或审查元素。VIP 用户享有完整功能,包括拖拽和审查元素等高级功能,可免费试用一个月。

其他说明

之前一直在纠结要不要开源,一个人太难搞了,欢迎大家一起壮大开源社区。

肯定有很多人会把CPF和Avalonia、Maui进行对比,自己根据喜好和需求选择吧,CPF是没有Xaml,不排除将来可能会增加Xaml的功能。

CPF会尽量适配国内系统和环境。

项目使用

C# 描述UI

public class Window1 : Window
{
    protected override void InitializeComponent()
    {
        LoadStyleFile("res://测试/Stylesheet1.css");
        Title = "标题";
        Width = 500;
        Height = 400;
        Background = null;
        Children.Add(new WindowFrame(thisnew Panel
        {
            Width = "100%",
            Height = "100%",
            Children =
            {
                new StackPanel{
                    Size = SizeField.Fill,
                    Children = {
                        new Label{
                            Text = "标签",
                            Bindings = {
                                {nameof(Label.Text),nameof(MainModel.Test) },
                                //{ nameof(Label.Text), nameof(MainModel.Test), null, BindingMode.OneWay, (string a)=>a+"转换器" }
                            },
                        },
                        new Button{
                            Content="按钮",
                            Bindings = {
                                {nameof(Label.Text),nameof(MainModel.Test) }
                            },
                        }
                    },
                },
            }
        }));
    }
}

CSS描述样式

需要注意的是这里只是用到CSS的格式,并不是兼容网页的CSS

Button 
{
    BorderFill#DCDFE6;
    IsAntiAlias: True;
    CornerRadius4,4,4,4;
    Background#FFFFFF;
}

Button[IsMouseOver=true] 
{
    BorderFillrgb(198,226,255);
    Backgroundrgb(236,245,255);
    Foregroundrgb(64,158,255);
}

Button[IsPressed=true] 
{
    BorderFillrgb(58,142,230);
}

项目效果

当前支持Windows(包括XP)、Mac、Linux(包括国产Linux+龙芯、飞腾、兆芯、海光等CPU平台),提供设计器和元素查看的开发者工具。

项目文档

CPF 从零入门文档

CPF API 文档

项目地址

GitHub:https://github.com/wsxhm/CPF

Gitee:https://gitee.com/csharpui/CPF

官网:http://cpf.cskin.net/

总结

以上仅展示了 CPF 的部分功能。更多实用特性和详细信息,请大家访问项目地址。

希望通过本文能为C#跨平台、高性能UI 开发提供有价值的参考。


阅读原文:原文链接


该文章在 2025/1/24 9:15:32 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved