我已经设法使用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
甚至可以在WinForms的首位实现这一目标吗?如果是这样,我想帮助实现这一点。谢谢。