我已经导出了一个依赖于某些本地图像的Item模板,我想手动加载它们,因为如果我不加载它们,我会得到例外。
我正在尝试使用Form.Designer.vb
中的全局变量$(ProjectDir),但似乎无法识别,我做错了什么?
Me.PictureBox1.Image = Image.FromFile("$(ProjectDir)\Resources\Clipboard.png")
当我加载项目模板时,上面的字符串将被读作文字字符串。
PS:我也不知道全局变量是否指向我正在加载项目模板的解决方案的路径,或者指向我导出项目模板的路径...当然我需要第二件事。
请注意,我用C#标记了这个问题,因为全局变量的使用应该是相同的......
答案 0 :(得分:2)
可能是你没有正确接近这个问题。第一个$(ProjectDir)
是Visual Studio IDE用于获取项目当前路径的宏。如果你想通过代码获得,那么你可以这样做:
string filePath = Path.Combine(Directory.GetParent(AppDomain.CurrentDomain.BaseDirectory).Parent.FullName,
"Resources\\Clipboard.png");
但更重要的是,你在资源中拥有它们。为什么不使用WinForm资源呢。您可以在资源中添加图像,这些资源将随构建一起提供,您可以通过以下代码访问它们:
PictureBox1.Image = Properties.Resources.Clipboard.png;
请参阅:How to add images as resources to C# Windows Application
答案 1 :(得分:1)
您使用的变量不适用于代码,仅适用于visual studio中的宏(如预构建事件)。
有关获取项目目录的信息,请参阅此问题: How to get Current Project Directory path using C#