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

问题描述 投票:0回答:1

我为现有软件(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

我在这里做错了什么?

vb.net resources
1个回答
0
投票

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

    MainButton.BackgroundImage = My.Resources.FSElogo
© www.soinside.com 2019 - 2024. All rights reserved.