첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ WinForm Form의 소유자를 WPF Window로 설정하기 예제

----------------------------------------------------------------------------------------------------

Form form = new Form();

 

form.Text = "윈폼";

 

SetOwner(form, this);

 

form.ShowDialog();

----------------------------------------------------------------------------------------------------

※ this는 Window 객체로 가정한다.

 

■ WinForm Form의 소유자를 WPF Window로 설정하기

----------------------------------------------------------------------------------------------------

using System.Runtime.InteropServices;

using System.Windows;

using System.Windows.Forms;

using System.Windows.Interop;

 

#region 윈도우 LONG 값 설정하기 - SetWindowLong(windowHandle, index, value)

 

/// <summary>

/// 윈도우 LONG 값 설정하기

/// </summary>

/// <param name="windowHandle">윈도우 핸들</param>

/// <param name="index">인덱스</param>

/// <param name="value"></param>

/// <returns>처리 결과</returns>

[DllImport("user32.dll")]

private static extern int SetWindowLong(HandleRef windowHandle, int index, int value);

 

#endregion

 

#region 소유자 설정하기 - SetOwner(form, ownerWindow)

 

/// <summary>

/// 소유자 설정하기

/// </summary>

/// <param name="form"></param>

/// <param name="ownerWindow">소유자 윈도우</param>

public void SetOwner(Form form, Window ownerWindow)

{

    WindowInteropHelper helper = new WindowInteropHelper(ownerWindow);

 

    SetWindowLong(new HandleRef(form, form.Handle), -8, helper.Handle.ToInt32());

}

 

#endregion

----------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요