첨부 소스 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170
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 객체를 사용하는데 내부 자식 엘리먼트에 포커스가 설정되지 않는 문제를 해결하기 위해 사용된다.

728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요