1

AutoCadからWPFウィンドウを起動しています

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

このダイアログを開いたときに常に左側に表示したい。myWindow.LeftをメインのAutoCADウィンドウのx座標と0に設定しようとしましたが、常に最後の場所に表示されます。WPFでWindow.Show()を使用する場合は位置を設定できますが、ウィンドウが常にautocadの上にあり、他のプログラムではなく、AutoCADで最小化できるようにするには、AutoCADAPIのShowModalWindowメソッドが必要です。

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 に答える