Изображение, которое иногда отображается, иногда нет - PullRequest
0 голосов
/ 02 ноября 2018

Я создаю игру для консольного приложения и хотел бы вывести на экран несколько изображений. Итак, я нашел несколько трюков в Google и создал этот скрипт для отображения изображения:

[DllImport("user32.dll")] public static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
    [DllImport("user32.dll", SetLastError = true)] public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
    [DllImport("kernel32.dll", EntryPoint = "GetConsoleWindow", SetLastError = true)] private static extern IntPtr GetConsoleHandle();

    private static void ShowImage(string filePath, int posX, int posY)
    {
        Image img = Image.FromFile(filePath);
        var form = new Form
        {
            FormBorderStyle = FormBorderStyle.None
        };

        var parent = GetConsoleHandle();
        var child = form.Handle;

        SetParent(child, parent);
        MoveWindow(child, 50, 50, img.Width, img.Height, true);

        form.Paint += delegate (object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            Rectangle rc = new Rectangle(new Point(0, 0), img.Size);
            g.DrawImage(img, form.ClientRectangle, rc, GraphicsUnit.Pixel);
        };
        Application.Run(form);
    }

Моя проблема в том, что иногда я не знаю почему, мое изображение не появляется! И это случайно, а не 1 раз на 2 или что-то в этом роде!

Примечание: я использую этот код для отображения png изображения

Итак, если кто-то знает, в чем проблема, я готов делать заметки:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...