GTKSystem.Windows.Forms
1.3.24.66
dotnet add package GTKSystem.Windows.Forms --version 1.3.24.66
NuGet\Install-Package GTKSystem.Windows.Forms -Version 1.3.24.66
<PackageReference Include="GTKSystem.Windows.Forms" Version="1.3.24.66" />
<PackageVersion Include="GTKSystem.Windows.Forms" Version="1.3.24.66" />
<PackageReference Include="GTKSystem.Windows.Forms" />
paket add GTKSystem.Windows.Forms --version 1.3.24.66
#r "nuget: GTKSystem.Windows.Forms, 1.3.24.66"
#addin nuget:?package=GTKSystem.Windows.Forms&version=1.3.24.66
#tool nuget:?package=GTKSystem.Windows.Forms&version=1.3.24.66
GTKSystem.Windows.Forms
介绍
Visual Studio原生开发,无需学习,一次编译,跨平台运行. C#桌面应用程序跨平台(windows、linux、macos)开发框架,基于GTK组件开发,使用该框架开发项目,Visual studio可以使用C#的原生winform表单窗体设计器,相同的属性、方法、事件,C#原生开发即可,无需学习。一次编译,跨平台运行。 便于开发跨平台winform软件,便于将C# winform软件升级为跨平台软件。
软件架构
使用DotNet Csharp为开发语言,使用GTK3.24.24.95作为表单UI,重写C#的System.Windows.Forms组件,在应用时,兼容原生C#程序组件。
安装教程
默认的情况下,visual studio从Nuget引用GtkSharp编译时,就会自动下载Gtk.zip运行时安装包,并自动解压安装。本开源项目下载包也包含Gtk.zip包,可手动安装。以下是三种环境安装方法:
1、安装GtkSharp后,编译你的工程项目,自动安装(自动下载的库版本比较旧,有bug,建议手动从本项目下载) 安装GtkSharp后,编译你的工程项目时,会自动下载gtk.zip解压到目录$(LOCALAPPDATA)\Gtk\3.24.24配置Gtk环境,目前国内网络限制,可能会出现无法下载的错误。 如果无法自动下载,本项目提供下载 https://gitee.com/easywebfactory/GTK-for-Windows/tree/master/Dependencies。 也可以下载https://github.com/GtkSharp/Dependencies,把文件解压后放到$(LOCALAPPDATA)\Gtk\3.24.24目录即可。 ps: $(LOCALAPPDATA)为电脑的AppData\Local文件夹,如:C:\Users\chj\AppData\Local\Gtk\3.24.24
2、下载exe安装包安装 本项目提供下载 https://gitee.com/easywebfactory/GTK-for-Windows/tree/master/Dependencies。 方法1在国内可能会有网络障碍,并且是比较旧的运行时库,可能有Bug,建议用此方法获取最新版本安装:下载https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer,安装后配置电脑变量环境:
你可以打开电脑属性配置,或者执行以下.bat命令:
@set GTK3R_PREFIX=C:\Program Files\GTK3-Runtime Win64
@echo set PATH=%GTK3R_PREFIX%;%%PATH%%
@set PATH=%GTK3R_PREFIX%;%PATH%
3、使用MSYS软件平台安装,具体操作请网上查询
windows安装DotNet环境:
从微软官网下载安装包https://dotnet.microsoft.com/zh-cn/download
桌面版linux操作系统通常已经预装GTK环境,不需要再安装GTK,只需安装DotNet SDK即可运行本框架。
对于没有安装GTK环境的linux系统,可用以下命令安装:
#Debian/Ubuntu环境
sudo apt install libgtk-3-0 //Binary package
sudo apt install libgtk-3-dev //开发环境 package
#Arch环境
sudo apt install gtk3
#Fedora 环境
sudo apt install gtk3 //Binary package
sudo apt install gtk3-devel //开发环境 package
*或指定库名安装
sudo apt-get install libgtk3*
#从MSYS2安装:
pacman -S mingw-w64-ucrt-x86_64-gtk3
*检查环境情况(需要安装pkg-config):
pkg-config --cflags --libs gtk+-3.0
*查找gtk的安装包目录:
ldconfig -p | grep gtk
linux安装DotNet环境:
安装方法可以查看微软官网教程:https://learn.microsoft.com/zh-cn/dotnet/core/install/linux-scripted-manual
开发教程
- 项目工程框架选择“window应用程序”改配置UseWindowsForms为false或“控制台应用程序”,.net6及以上版本
- NulGet安装GtkSharp(3.24.24.95)、GTKSystem.Windows.Forms、GTKSystem.Windows.FormsDesigner
- 检查form表单是否有使用图像资源,如使用需新建System.Resources.ResourceManager和System.ComponentModel.ComponentResourceManager,具体请看下面内容。
- 安装本下载包里的【VisualStudio开发插件】,用于添加窗体创建模板。
如何运行软件
- windows下:直接编译发布运行,Debug目录的demo_app.exe文件或demo_app.dll文件都可以直接运行。
- linux和macos上:执行命令运行dotnet demo_app.dll。
- 使用本框架的工程项目也可以在linux系统上编译发布,可以生成linux系统专用文件(无后缀名的文件),此文件可以直接双击启动应用
VisualStudio插件安装
工具一、从NuGet上安装GTKSystem.Windows.FormsDesigner类库,此类库可以在编译工程时修正窗体设计器。
工具二、下载本插件工具,关闭visual studio,直接双击GTKWinformVSIXProject.vsix文件安装(本框架下的工程,Studio没有添加Form模板项,需要安装此插件)
插件会安装两个功能:
1、新建项的Form窗体模板、用户控件模板。
2、工程右键菜单。
开发教程及说明
以下配置在你的项目工程里操作:
1、新建System.Resources.ResourceManager类<br/> 在项目下新建System.Resources.ResourceManager类,继承GTKSystem.Resources.ResourceManager,用于覆盖原生System.Resources.ResourceManager类。 GTKSystem.Resources.ResourceManager实现了项目资源文件和图像文件读取。 如果项目里没有使用资源图像文件,可以不用新建此文件。
2、新建System.ComponentModel.ComponentResourceManager类<br/> 在项目下新建System.ComponentModel.ComponentResourceManager类,继承GTKSystem.ComponentModel.ComponentResourceManager,用于覆盖原生System.ComponentModel.ComponentResourceManager类。<br/> GTKSystem.ComponentModel.ComponentResourceManager实现了项目资源文件和图像文件读取(调用GTKSystem.Resources.ResourceManager)。 如果项目里没有使用资源图像文件,可以不用新建此文件。
3、GTKWinFormsApp.csproj<br/> 配置UseWindowsForms为false,目标OS设置为“(空)”,或者使用控制台应用程序(在控制台框架下会显示控制台窗口,不建议这种方式)
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<UseWindowsForms>false</UseWindowsForms>
4、引用GTKSystem.Windows.Forms、System.Resources.Extensions <br/> GTKSystem.Windows.Forms是必须引用<br/> System.Resources.Extensions是空程序dll,不是必须引用,只有VS在窗体设计器出现相关异常提示时使用
5、从NuGet安装GTKSystem.Windows.FormsDesigner,用于开启窗体设计器。<br/> 使用窗体设计器有几种方法,详细的使用教程可以访问https://www.gtkapp.com/formsdesigner
Resources资源的使用
支持GTKSystem,获取技术服务
企业服务:https://www.gtkapp.com/vipservice
交流/合作/商务/赞助
QQ群:236066073(满),1011147488 邮箱:438865652@qq.com <br/>
默认风格效果
默认风格工具栏菜单
图文窗口
支持各种主题风格界面(windows xp、vista、7、8、10,macOS系列,等等)
主题风格,window10黑色风格界面
主题风格,macOS风格界面
常见问题
为什么Form窗体设计器打不开?<br/>
答:从NuGet安装GTKSystem.Windows.FormsDesigner,编译工程,检查obj目录下包含GTKWinFormsApp.designer.runtimeconfig.json和GTKWinFormsApp.runtimeconfig.json,然后按以下流程操作:
1、编译一下
2、打开Form窗体
(如果不能打开窗体,执行下面流程)
3、关闭Form窗体,编译一下
4、重启Visual Studio
5、打开Form窗体设计器
参与贡献
- https://gitee.com/easywebfactory
- https://github.com/easywebfactory
- https://blog.csdn.net/auto_toyota
更新记录
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- GtkSharp (>= 3.24.24.95)
- System.Resources.Extensions (>= 8.0.0)
-
net6.0
- GtkSharp (>= 3.24.24.95)
- System.Resources.Extensions (>= 8.0.0)
-
net8.0
- GtkSharp (>= 3.24.24.95)
- System.Resources.Extensions (>= 8.0.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on GTKSystem.Windows.Forms:
Package | Downloads |
---|---|
Net4x.InputBoxLibrary.GtkWinForms
InputBoxLibrary WinForms |
|
Net4x.GtkWindowsFormsLibrary
Windows Library |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on GTKSystem.Windows.Forms:
Repository | Stars |
---|---|
easywebfactory/gtksystem-windows-forms
C # desktop application cross platform (Windows, Linux, macOS) development framework, based on GTK components. Using this framework to develop projects, Visual Studio can use C #'s native Winform form designer. The same properties, methods, and events can be developed in C # without learning. One compilation, cross platform operation.
|
Version | Downloads | Last updated |
---|---|---|
1.3.24.66 | 182 | 5/5/2025 |
1.3.24.65 | 126 | 4/19/2025 |
1.3.24.64 | 315 | 3/10/2025 |
1.3.24.63 | 190 | 3/9/2025 |
1.3.24.62 | 292 | 2/27/2025 |
1.3.24.61 | 105 | 2/26/2025 |
1.3.24.60 | 163 | 2/10/2025 |
1.3.24.59 | 127 | 2/5/2025 |
1.3.24.58 | 360 | 1/2/2025 |
1.3.24.57 | 157 | 12/28/2024 |
1.3.24.56 | 174 | 12/13/2024 |
1.3.24.55 | 134 | 11/26/2024 |
1.3.24.54 | 294 | 11/14/2024 |
1.3.24.53 | 156 | 11/6/2024 |
1.3.24.52 | 151 | 10/24/2024 |
1.3.24.51 | 107 | 10/23/2024 |
1.3.24.50 | 152 | 10/19/2024 |
1.3.24.49 | 145 | 9/27/2024 |
1.3.24.48 | 133 | 9/22/2024 |
1.3.24.47 | 217 | 8/27/2024 |
1.3.24.46 | 329 | 8/26/2024 |
1.3.24.45 | 300 | 7/16/2024 |
1.3.24.44 | 123 | 7/15/2024 |
1.3.24.43 | 118 | 7/12/2024 |
1.3.24.42 | 149 | 7/8/2024 |
1.3.24.41 | 207 | 7/7/2024 |
1.3.24.40 | 130 | 7/2/2024 |
1.3.24.39 | 147 | 6/27/2024 |
1.3.24.38 | 169 | 6/22/2024 |
1.3.24.37 | 121 | 6/22/2024 |
1.3.24.36 | 133 | 6/20/2024 |
1.3.24.35 | 121 | 6/20/2024 |
1.3.24.34 | 126 | 6/18/2024 |
1.3.24.33 | 125 | 6/11/2024 |
1.3.24.32 | 122 | 6/9/2024 |
1.3.24.31 | 146 | 5/30/2024 |
1.3.24.30 | 112 | 5/27/2024 |
1.3.24.29 | 122 | 5/22/2024 |
1.3.24.28 | 129 | 5/21/2024 |
1.3.24.27 | 112 | 5/20/2024 |
1.3.24.26 | 123 | 5/16/2024 |
1.3.24.25 | 110 | 5/16/2024 |
1.3.24.24 | 129 | 5/15/2024 |
1.3.24.23 | 135 | 5/10/2024 |
1.3.24.22 | 142 | 5/6/2024 |
1.3.24.21 | 120 | 5/6/2024 |
1.3.24.20 | 115 | 5/5/2024 |
1.3.24.14 | 156 | 4/20/2024 |
1.3.24.13 | 118 | 4/19/2024 |
1.3.24.12 | 144 | 3/28/2024 |
1.3.24.11 | 371 | 3/19/2024 |
1.3.24.10 | 129 | 3/6/2024 |
1.3.24.9 | 173 | 3/2/2024 |
1.3.24.8 | 119 | 2/29/2024 |
1.3.24.7 | 131 | 2/22/2024 |
1.3.24.6 | 166 | 2/20/2024 |
1.3.24.5 | 117 | 2/18/2024 |
1.3.24.4 | 130 | 2/8/2024 |
1.3.24.3 | 125 | 2/5/2024 |
1.3.24.2 | 123 | 2/5/2024 |
1.3.24.1 | 121 | 2/5/2024 |
1.0.0.3 | 129 | 2/8/2024 |
1.0.0.2 | 142 | 2/8/2024 |
1.0.0.1 | 176 | 2/5/2024 |
C#界面跨平台开发组件GTKSystem.Windows.Forms