MonoGame.Forms
1.0.0
单体。Forms是将单体渲染窗口集成到Windows表单项目中的最简单方法。当您想创建自己的编辑环境时,它应该使您的生活更加轻松。
笔记
提示
AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; 。如果要关闭整个应用程序的缩放,则需要添加一个清单文件。 重要的
dotnet add package MonoGame.Forms.DX或使用软件包管理器dotnet new install MonoGame.Forms.Templatesdotnet new mgf -n MyMonoGameFormsProjectdotnet new mgfn -n MyMonoGameFormsProjectdotnet new mgc -na MyMonoGameControldotnet new mgic -na MyInvalidationControl在单元中,您可以使用SpriteBatch将某个绘制到屏幕上。在单体中,您将执行相同的操作,但是您需要使用EditorService为此。
在monogame.forms.control类中,此服务称为编辑器。因此,为了向SpriteBatch绘制一些东西,您需要这样做:
Editor . spriteBatch . DrawString ();让我们看一下最终的绘制考试课:
using Microsoft . Xna . Framework ;
using MonoGame . Forms . Controls ;
namespace nugetTest
{
public class DrawTest : MonoGameControl
{
string WelcomeMessage = "Hello MonoGame.Forms!" ;
protected override void Initialize ()
{
}
protected override void Update ( GameTime gameTime )
{
}
protected override void Draw ()
{
Editor . spriteBatch . Begin ();
Editor . spriteBatch . DrawString ( Editor . Font , WelcomeMessage , new Vector2 (
( Editor . graphics . Viewport . Width / 2 ) - ( Editor . Font . MeasureString ( WelcomeMessage ). X / 2 ),
( Editor . graphics . Viewport . Height / 2 ) - ( Editor . FontHeight / 2 )),
Color . White );
Editor . spriteBatch . End ();
}
}
}结果:
这几乎就像在单体制品中一样!
看看是本仓库的一部分的nonoGame.forms.smples-project,以了解有关单体的方式的更多信息。
此特定的控制类无需覆盖update()方法,因为它可以手动更新(由您!)。
您只需要在想在其上看到的每个更改来调用自定义无效Control上的Invalidate()即可。打电话给此后,您的控件将不再消耗CPU功率。在创建纹理和类似内容的预览控件时,这很棒!
以下是来自Blazor分支的一些示例照片: