我想在AutoCAD中创建信息框功能。与您在Google地球中悬停某些功能相同,它会向您显示带有图片的信息框。
我正在考虑使用调色板,但我不确定如何将其调整为看起来像信息框。
我打算创建.NEt插件。
有什么建议吗?
答案 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;
}
};
现在看起来很好。 :)**
正如我在下面的评论中所说,这是该解决方案的屏幕截图
你可以注意到,工具提示不是靠近几何体,我选择了粉红色的。那是我的最后一个问题。我的流程是当我选择对象时,我得到了win form listBox,它为我提供了几个连接到该实体的图像文件。当我选择一个时,它打开tootltip,但它似乎相对于列表框对话框。我无法找到如何手动设置工具提示位置的解决方案。有什么建议吗?
答案 1 :(得分:2)
您可以使用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
答案 2 :(得分:0)
使用PointMonitor,检测您所关注的实体是否位于光标位置下,并在适用时弹出您自己的窗口,将图像保存在列表框,组合框等中更具可控性和灵活性。窗口可以是您选择的WPF或WinForm。
这绝对可行,一些应用程序已经非常成熟地使用这些技术。必须考虑一些协调变换的东西,例如从窗口像素到AutoCAD显示系统,从DCS到WCS,来回。
现在,剩下的唯一可能是表现。希望以下提示有所帮助。