在 C# 中使用 Gtk# 创建位图并显示它
Create a bitmap and display it using Gtk# in C#
我是 MAC 用户,所以我不能使用 Windows 表单。我正在尝试自己弄清楚 Gtk#,但在 Internet 上几乎找不到教程和文档。我想创建一个位图,在其中绘制一些东西并显示它。到目前为止,我带来了这个并且显示了 window:
Application.Init();
Window Win = new Window("Ray Tracing #2");
Win.Resize(480, 480);
Win.ShowAll();
Application.Run();
但是,我想用 window 进行操作,所以假设:首先添加一个位图。
我知道要创建位图我必须写:
System.Drawing.Image IMG = new Bitmap(640, 640);
但是然后呢?
好吧,让我们尝试一次解决所有问题:
- 您可以找到 Gtk# tutorial in ZetCode.
- 如果您要处理图形,则需要了解 Cairo#。
- 我有一个 Github 存储库供我的学生使用 simple demo using both Gtk# and Cairo。
- 我有另一个 Github 存储库 CSV-based spreadsheet application。
我的建议是不要依赖 MonoDevelop/XamarinStudio 中的可视化设计器,而是了解工具包的工作原理并直接使用它。现在图形工具包很容易使用,这样你就不会被任何东西束缚 editor/environment.
关于你的具体问题,Bitmap 属于 WinForms 的领域(事实上,它在 Drawing 命名空间内),你应该使用 Gtk.Image。让我们创建一个滚动面板(尽管它被称为 "window"),并用它来显示位图。
var swScroll = new Gtk.ScrolledWindow();
var picBox = new Gtk.Image( "/path/to/image.jpg" );
var vbox = new VBox( false, 5 );
swScroll.AddWithViewport( picBox );
vbox.PackStart( swScroll, true, true, 5 );
this.Add( vbox );
this.ShowAll();
您可以构建具有特定大小或其他大小的空图像。探索可用于 Gtk.Image.
的构造函数
希望对您有所帮助!
我是 MAC 用户,所以我不能使用 Windows 表单。我正在尝试自己弄清楚 Gtk#,但在 Internet 上几乎找不到教程和文档。我想创建一个位图,在其中绘制一些东西并显示它。到目前为止,我带来了这个并且显示了 window:
Application.Init();
Window Win = new Window("Ray Tracing #2");
Win.Resize(480, 480);
Win.ShowAll();
Application.Run();
但是,我想用 window 进行操作,所以假设:首先添加一个位图。
我知道要创建位图我必须写:
System.Drawing.Image IMG = new Bitmap(640, 640);
但是然后呢?
好吧,让我们尝试一次解决所有问题:
- 您可以找到 Gtk# tutorial in ZetCode.
- 如果您要处理图形,则需要了解 Cairo#。
- 我有一个 Github 存储库供我的学生使用 simple demo using both Gtk# and Cairo。
- 我有另一个 Github 存储库 CSV-based spreadsheet application。
我的建议是不要依赖 MonoDevelop/XamarinStudio 中的可视化设计器,而是了解工具包的工作原理并直接使用它。现在图形工具包很容易使用,这样你就不会被任何东西束缚 editor/environment.
关于你的具体问题,Bitmap 属于 WinForms 的领域(事实上,它在 Drawing 命名空间内),你应该使用 Gtk.Image。让我们创建一个滚动面板(尽管它被称为 "window"),并用它来显示位图。
var swScroll = new Gtk.ScrolledWindow();
var picBox = new Gtk.Image( "/path/to/image.jpg" );
var vbox = new VBox( false, 5 );
swScroll.AddWithViewport( picBox );
vbox.PackStart( swScroll, true, true, 5 );
this.Add( vbox );
this.ShowAll();
您可以构建具有特定大小或其他大小的空图像。探索可用于 Gtk.Image.
的构造函数希望对您有所帮助!