在DirectX视频上绘制/渲染文本(PictureBox控件作为所有者)

时间:2018-05-04 03:09:17

标签: c# winforms directx

我已经设法使用DirectX的视频类为我的WinForms应用程序项目实现了一个视频播放功能(尽管已经过时并且已弃用)。我的目标是将此视频用作具有最少控件的特定表单的背景。我尝试过使用GIF文件,但颜色质量不够好,另一方面使用APNG让我的文件大小非常大。

由于Dx的视频类需要一个控制来播放视频 - 我已经使用PictureBox控件来完成Panel Control也可以替代它的地方。我的下一个目标是在PictureBox控件上绘制/渲染文本,该文件充当视频的主机。这是因为Label Controls不透明,也不支持100%的透明度所以我试图通过使用Graphics.DrawString()TextRenderer.DrawText()呈现字符串来进行即兴创作。

我已经尝试了两种,但都没有能够显示我预期的文本。

以下是我在PictureBox控件的Paint Event上的代码段:

private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
     var font = new Font("Helvetica Neue LT Std 65", 15);
     var brush = new SolidBrush(Color.White);
     var point = new Point(55, 150);

     string welcomeText = "Welcome, User!";

     // e.Graphics.DrawString(welcomeText, font, brush, point);

     TextRenderer.DrawText(e.Graphics, welcomeText, font, point, Color.White);

     pictureBox1.Refresh();
}

运行我的源代码时,实际上没有任何事情发生,就像在这个GIF中一样:https://imgur.com/3uYdCF1

但是,我期待的是这样的: enter image description here

甚至可以在WinForms的首位实现这一目标吗?如果是这样,我想帮助实现这一点。谢谢。

0 个答案:

没有答案