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

■ Popup 클래스 : 팝업 활성화 시키기

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

using System;

using System.Runtime.InteropServices;

using System.Windows;

using System.Windows.Controls.Primitives;

using System.Windows.Interop;

 

#region 전경 윈도우 설정하기 - SetForegroundWindow(windowHandle)

 

/// <summary>

/// 전경 윈도우 설정하기

/// </summary>

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

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

[DllImport("USER32.DLL")]

[return : MarshalAs(UnmanagedType.Bool)]

public static extern bool SetForegroundWindow(IntPtr windowHandle);

 

#endregion

 

#region 팝업 활성화 시키기 - ActivatePopup(popup)

 

/// <summary>

/// 팝업 활성화 시키기

/// </summary>

/// <param name="popup">팝업</param>

public void ActivatePopup(Popup popup)

{

    HwndSource hwndSource = (HwndSource)PresentationSource.FromVisual(popup.Child);

 

    IntPtr handle = hwndSource.Handle;

 

    SetForegroundWindow(handle);

}

 

#endregion

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

※ 브라우저 애플리케이션에서 보안 때문에 Window 객체를 사용해 대화 상자를 표시하지 못하는 대신 Popup 객체를 사용하는데 내부 자식 엘리먼트에 포커스가 설정되지 않는 문제를 해결하기 위해 사용된다.

Posted by 사용자 icodebroker
TAG , ,

댓글을 달아 주세요