■ Popup 클래스를 사용해 팝업을 활성화하는 방법을 보여준다.
▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
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")] [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 객체를 사용하는데 내부 자식 엘리먼트에 포커스가 설정되지 않는 문제를 해결하기 위해 사용된다.