繁体   English   中英

使用 Visual Studio 2022 C# for revit 将图像添加到按钮的问题

[英]issue adding images to buttons using visual studios 2022 C# for revit

我遇到了一个问题,在我尝试输入图像之前一切正常。 我试图从内部将它们作为资源引入,而对于 C# 来说,不知道该怎么做。 下面是向我抛出错误的代码。 以及错误消息。
错误信息

#region Namespaces
using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using System;
using System.Collections.Generic;
using System.IO;
using Microsoft.CSharp;
using System.Media;
using System.Reflection;
using System.Drawing.Imaging;
using System.IO.Packaging;
using System.Drawing; 
#endregion

namespace TpMechanical
{
    internal class App : IExternalApplication
    {
        public Result OnStartup(UIControlledApplication a)
        {
            String tabname = "TpMechanical";
            String panelname = "Tools";
          
            Bitmap button1Image = (System.Drawing.Bitmap)TpMechanical.Properties.Resources.ResourceManager.GetObject("Untitled design.png");
            Bitmap button2Image = (System.Drawing.Bitmap)TpMechanical.Properties.Resources.ResourceManager.GetObject("Untitled design2.png");
            Bitmap button3Image = (System.Drawing.Bitmap)TpMechanical.Properties.Resources.ResourceManager.GetObject("Untitled design3.png");


            a.CreateRibbonTab(tabname);
            var Tools = a.CreateRibbonPanel(tabname, panelname);
            var button1 = new PushButtonData("TpButton1", "Button1", Assembly.GetExecutingAssembly().Location, "TpMechanical.command");
            button1.ToolTip = " This is a short description";
            button1.LongDescription = "This is a long description \n " +
                "this is the second line";
            var btn1 = Tools.AddItem(button1);

            var button2 = new PushButtonData("TpButton2", "Button2", Assembly.GetExecutingAssembly().Location, "TpMechanical.command2");
            button2.ToolTip = " This is a short description";
            button2.LongDescription = "This is a long description \n " +
                "this is the second line";
   
            var button3 = new PushButtonData("TpButton3", "Button3", Assembly.GetExecutingAssembly().Location, "TpMechanical.command3");
            button3.ToolTip = " This is a short description";
            button3.LongDescription = "This is a long description \n " +
                "this is the second line";
            
            Tools.AddStackedItems(button2, button3);
            

            return Result.Succeeded;
        }

        public Result OnShutdown(UIControlledApplication a)
        {
            return Result.Succeeded;
        }
    }
}

Bitmap b1Image = (System.Drawing.Bitmap)(WindowsFormsApp1.Properties.Resources.ResourceManager.GetObject("Name of the image"));

这就是你所追求的吗? 您需要将“WindowsFormsApp1”替换为正确的命名空间。

由@Luke Attard 解决

使用 c# 中的标准 bitmap 库从资源导入图像

Bitmap b1Image = (System.Drawing.Bitmap)(WindowsFormsApp1.Properties.Resources.ResourceManager.GetObject("图片名称"));

您需要将“WindowsFormsApp1”替换为正确的命名空间。

当您使用 System.Windows.Media.Imaging 时,您将需要:

BitmapImage b1Image = (System.Windows.Media.Imaging.BitmapImage)(WindowsFormsApp1.Properties.Resources.ResourceManager.GetObject("图片名称"));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM