본문 바로가기

Dev::DotNet/WPF

WebBrowser Control Zoom 조절

일반적으로 사용하는 웹브라우져에서 확대/축소를 할 수 있고


WPF 의 WebBrowser 컨트롤에서도 확대/축소를 할 수 있지만 WebBrowser 에서 기본적으로 제공하지는 않는 것 같다.


Zoom 을 강제적으로 지정하기 위해서는 SHDocVw 참조가 필요하여 아래와 같이 하면 된다.

(참조 관리자 -> Com -> Microsoft Internet Controls)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void SetZoom(System.Windows.Controls.WebBrowser aBrowser, double aZoomFactor)
{
    if (aBrowser != null)
    {
        if (aBrowser != null)
        {
            FieldInfo webBrowserInfo
                = aBrowser.GetType().GetField("_axIWebBrowser2", BindingFlags.Instance | BindingFlags.NonPublic);
 
            if (webBrowserInfo != null)
            {
                InternetExplorer ie 
                    = webBrowserInfo.GetValue(aBrowser) as SHDocVw.InternetExplorer;
 
                if (ie != null)
                {
                    object zoomPercent = (int)(aZoomFactor * 100);
 
                    ie.ExecWB(SHDocVw.OLECMDID.OLECMDID_OPTICAL_ZOOM, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, ref zoomPercent, IntPtr.Zero);
                }
            }
        }
    }
}
cs