用资源文件路径替换绝对文件路径

时间:2020-06-15 21:55:20

标签: vb.net resources

我为现有软件(Revit)创建了一个加载项,并且想要在该加载项的按钮中嵌入图片(我公司的徽标)。

这是我目前的代码:

'Set the large image shown on button
        Dim uriImage As New Uri("\\10.8.60.3\Shared\REVIT\FSElogo.png")
        Dim largeImage As New BitmapImage(uriImage)
        MainButton.LargeImage = largeImage

它工作得很好并且徽标正确显示,但是它要求计算机可以访问位于\\10.8.60.3的服务器。在家工作时,我们无权访问此服务器,因此Revit会在启动时引发错误。

因此,我尝试将FSElogo.png文件作为Resource添加到我的VB.Net项目中,然后尝试使用My.Resources访问该图像,从而有效地消除了对外部图像的需求使用。

好吧,我无法正常工作。 我尝试用

替换上面的代码

MainButton.LargeImage = CType(My.Resources.ResourceManager.GetObject("FSElogo.png"), Windows.Media.ImageSource)

但是它不起作用。它不会引发错误,但是按钮上没有显示图像。

如果我没有将Object强制转换为ImageSource,则会收到implicit conversion from Object to Image错误,而且我甚至不确定我的ResourceManager是否真的返回了对象FSElogo.png

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

我正在使用带有.BackgroundImage属性的VS提供的按钮。请注意,文件扩展名不包括在资源标识符中。如果这不起作用,则必须确切说明如何将资源添加到项目中。

    MainButton.BackgroundImage = My.Resources.FSElogo