첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 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

댓글을 달아 주세요