1

我正在使用 AutoCad 启动 WPF 窗口

Autodesk.AutoCAD.ApplicationServices.Application.ShowModalWindow(myWindow);

我希望此对话框在打开时始终出现在左侧。我尝试将 myWindow.Left 设置为 AutoCAD 主窗口的 x 坐标并设置为 0,但它始终出现在它的最后一个位置。在 WPF 中使用 Window.Show() 时可以设置位置,但需要 AutoCAD API 的 ShowModalWindow 方法,以便窗口始终位于 AutoCAD 之上,而不是任何其他程序,并且可以使用 AutoCAD 将其最小化。

4

1 回答 1

2

好的,我已经在我的机器上进行了测试,所以我知道它可以工作。但是您可能需要稍作修改才能为您的窗口获取正确的坐标。在下面的实例中,我使用了 ShowModalDialog。但是 ShowModalWindow 应该类似地工作。

第 1 步: 更改表单属性 >> 开始位置:手动

第2步: 使用不同的重载方法:(意思是,将persistSizeAndPosition更改为False,这就是全部技巧)

Dim LineForm As New frmLineDsgn
LineForm.Left = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Left + 5
LineForm.Top = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Top + 5

Application.ShowModalDialog(LineForm.Handle,LineForm,False)

看起来这个问题以前在 AutoCAD 论坛上被问过:Tony Tanzillo 有一个很好的答案(值得称赞): http ://forums.autodesk.com/t5/NET/ShowModalDialog-question/td-p/1744220

您将需要使用不同的重载方法:

Public Shared Function ShowModalWindow(ByVal owner As System.Windows.Window, 
ByVal formToShow As System.Windows.Window, 
ByVal persistSizeAndPosition As Boolean) As Boolean?
 Member of Autodesk.AutoCAD.ApplicationServices.Application

Public Shared Function ShowModalDialog(ByVal owner As System.Windows.Forms.IWin32Window, 
ByVal formToShow As System.Windows.Forms.Form, 
ByVal persistSizeAndPosition As Boolean) As System.Windows.Forms.DialogResult
 Member of Autodesk.AutoCAD.ApplicationServices.Application
于 2012-06-28T18:54:34.040 回答