如何将sdl.net窗口添加到C#windows窗体应用程序?

如何将sdl.net窗口添加到C#windows窗体应用程序?,c#,winforms,sdl.net,C#,Winforms,Sdl.net,我有一个基本完整的C#winform应用程序(它很大,所以我不能从头重写它),我想在其中添加一个sdl.net窗口,以便以复杂的图形方式显示我的应用程序的一些功能(sdl.net窗口必须以某种方式从我的应用程序中获得稳定的数据流,所以我不能再做另一个项目) 问题是我怎么做?这类事情有什么共同的做法吗?或者是一个类似的教程 简而言之,我可以将sdl.net窗口添加到C#winform应用程序中吗?如果可以,那么如何添加?您可以创建自己的sdl.net窗口类,该类将在创建时使用SdlDotNet.G

我有一个基本完整的C#winform应用程序(它很大,所以我不能从头重写它),我想在其中添加一个sdl.net窗口,以便以复杂的图形方式显示我的应用程序的一些功能(sdl.net窗口必须以某种方式从我的应用程序中获得稳定的数据流,所以我不能再做另一个项目)

问题是我怎么做?这类事情有什么共同的做法吗?或者是一个类似的教程


简而言之,我可以将sdl.net窗口添加到C#winform应用程序中吗?如果可以,那么如何添加?

您可以创建自己的sdl.net窗口类,该类将在创建时使用
SdlDotNet.Graphics.Video.SetVideoMode()
方法,在内部处理图形操作,并提供从winform应用程序调用的公共方法

诸如此类:

using System.Drawing;
using SdlDotNet.Graphics;

public class SdlWindow
{
    private Surface screen; // the display Surface

    /* ctor */
    public SdlWindow(Size size)
    {
        screen = Video.SetVideoMode(size.Width, size.Height);   // create a new sdl Surface and its own window container
        Video.WindowCaption = "Sdl Window";
    }

    /* your methods */
    public void DrawRectangle(Rectangle rect)
    {
        screen.Fill(rect, Color.Red);
        screen.Update();
    }

    /* cleanup a bit */
    public void Dispose()
    {
        if (screen != null)
            Video.Close();
    }
}
不要忘记在项目中添加对SdlDotNet.dll库的引用


希望这有帮助

记住,你必须用不同的线程运行它,是的,很自然,但我不知道怎么做。你能给我一个线索吗?