如何将 wmf 文件动态分配给图片框
Posted
技术标签:
【中文标题】如何将 wmf 文件动态分配给图片框【英文标题】:How to dynamically assign a wmf file to a picturebox 【发布时间】:2021-07-25 01:54:25 【问题描述】:我有一个使用 100 个 .wmf 文件的 VB6 遗留系统 我现在正在使用 Visual Studio 2019 VB.NET 创建相同的应用程序 我在将图片框从默认的 .wmf 文件动态更改为新文件时遇到问题。 我已经测试了代码以毫无问题地更改为 .jpg 图像。 (参见下面的代码 - 输出替换原始 .wmf 图像,然后在空白和 .jpg 图像之间切换)
Static Toggle As Boolean
Dim FName As String = ""
If Toggle Then
FName = "D:\VB6\06ST.jpg"
Else
FName = "D:\VB6\06ST.wmf"
End If
Toggle = Not Toggle
PictureBox1.Image = Image.FromFile(FName)
有没有办法解决这个问题?
【问题讨论】:
不要一遍又一遍地从同一个文件中创建 Image 对象,也不要丢弃它们。只需在开始时创建两个 Image 对象,根据需要在它们之间切换,然后在完成后处理它们。 查看文档docs.microsoft.com/en-us/dotnet/api/… 我学到了 2 个有趣的东西。第一个 .wmf 不受支持,第二个“文件保持锁定直到图像被释放。” 我会尝试两件事。使用元文件子类/构造函数,如果这仍然导致中断,请删除 .wmfs 的可放置标头(= 前 22 个字节)。 【参考方案1】:移动这一行:
Toggle = Not Toggle
进入 else 条件。
要么这样,要么我不明白这个问题。
【讨论】:
谢谢 - 切换操作正确,问题是图片框将仅显示 .jpg 文件并在为 .wmf 文件执行代码时变为空白(即使初始图像设置为.wmf 文件在表单设计器中显示正确)以上是关于如何将 wmf 文件动态分配给图片框的主要内容,如果未能解决你的问题,请参考以下文章