我想在 AutoCAD 中创建信息框功能。就像您将某些功能悬停在 Google 地球中一样,它会向您显示带有图片的信息框。
我正在考虑使用调色板,但我不确定如何将其调整为看起来像信息框。
我打算创建 .NET 插件。
有什么建议么?
我想在 AutoCAD 中创建信息框功能。就像您将某些功能悬停在 Google 地球中一样,它会向您显示带有图片的信息框。
我正在考虑使用调色板,但我不确定如何将其调整为看起来像信息框。
我打算创建 .NET 插件。
有什么建议么?
**好吧,我发现我认为最好的方法是使用 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;
}
};
我现在看起来很好。:)**
正如我在下面的评论中所说,这里是此解决方案的屏幕截图
您可能会注意到,工具提示不在几何体附近,我选择了粉红色的。那是我的最后一个问题。我的流程是,当我选择对象时,我得到了 win 表单 listBox,它为我提供了几个连接到该实体的图像文件。当我选择一个时,它会打开工具提示,但它似乎相对于列表框对话框。我无法找到如何手动设置工具提示位置的解决方案。有什么建议么?
您可以使用 PointMonitor 来检测鼠标移动:http ://through-the-interface.typepad.com/through_the_interface/2009/07/providing-information-on-autocad-objects-in-a-tooltip-using-net .html
为了显示图像,您可以在调色板中使用 WPF:http: //through-the-interface.typepad.com/through_the_interface/2009/08/hosting-wpf-content-inside-an-autocad-palette.html
使用 PointMonitor,检测您关注的实体是否在光标位置下,并在适用时弹出您自己的窗口,将图像保存在列表框、组合框等中,更加可控和灵活。该窗口可以是您选择的 WPF 或 WinForm。
这绝对是可行的,并且一些应用程序已经相当成熟地使用了这些技术。必须考虑一些协调转换的东西,例如从窗口像素到AutoCAD显示系统,从DCS到WCS,来回。
现在,唯一剩下的可能就是性能了。希望以下提示对您有所帮助。