AutoCAD信息框功能

时间:2012-06-03 19:27:22

标签: .net autocad autocad-plugin

我想在AutoCAD中创建信息框功能。与您在Google地球中悬停某些功能相同,它会向您显示带有图片的信息框。

Something like this

我正在考虑使用调色板,但我不确定如何将其调整为看起来像信息框。

我打算创建.NEt插件。

有什么建议吗?

3 个答案:

答案 0 :(得分:3)

**嗯,我发现使用AutoCAD工具提示我觉得最好的方法。以下是代码段:

Autodesk.Windows.ComponentManager.ToolTipOpened +=
            (s, e) =>
            {       
                Autodesk.Internal.Windows.ToolTip tooltip =
                s as Autodesk.Internal.Windows.ToolTip;
                if (tooltip != null)
                {                     
                        var image = new System.Windows.Controls.Image();
                        var bitmapImage = new BitmapImage();
                        bitmapImage.BeginInit();
                        bitmapImage.UriSource = new Uri(@"C:/index.jpeg");
                        bitmapImage.EndInit();
                        image.Source = bitmapImage;
                        tooltip.Height = image.Height;
                        tooltip.Width = image.Width;
                        tooltip.Content = image;
                }
            };

现在看起来很好。 :)**

正如我在下面的评论中所说,这是该解决方案的屏幕截图

enter image description here

你可以注意到,工具提示不是靠近几何体,我选择了粉红色的。那是我的最后一个问题。我的流程是当我选择对象时,我得到了win form listBox,它为我提供了几个连接到该实体的图像文件。当我选择一个时,它打开tootltip,但它似乎相对于列表框对话框。我无法找到如何手动设置工具提示位置的解决方案。有什么建议吗?

答案 1 :(得分:2)

答案 2 :(得分:0)

使用PointMonitor,检测您所关注的实体是否位于光标位置下,并在适用时弹出您自己的窗口,将图像保存在列表框,组合框等中更具可控性和灵活性。窗口可以是您选择的WPF或WinForm。

这绝对可行,一些应用程序已经非常成熟地使用这些技术。必须考虑一些协调变换的东西,例如从窗口像素到AutoCAD显示系统,从DCS到WCS,来回。

现在,剩下的唯一可能是表现。希望以下提示有所帮助。

  1. 缓存上一个实体ID。如果光标仍悬停在光标上,则不做任何事情,只保留上一张图像。
  2. 如果用户将光标从一个实体快速移动到另一个实体,则可能不需要丢弃前一个窗口并创建新窗口。更换图像应该足够好了。
  3. 提供相同图像的不同分辨率,如缩略图,预览或精细,并在不同时间显示它们,例如光标在缩短时间内短于1秒,如果长度超过5秒,则显示精美图像。
  4. 最好为用户提供一些配置这些的方法。