its_jh_stroy

[C#] WPF WebView2로 웹 페이지 표시하기 본문

C#

[C#] WPF WebView2로 웹 페이지 표시하기

_J_H_ 2023. 12. 9. 14:53

WPF에서 웹 페이지 렌더링을 지원하는 기본적인 컨트롤은 WebBrowser이다.

하지만 WebBrowser 컨트롤은 IE 기반으로 페이지를 표시하기 때문에 최신 웹 표준을 지원하지 않는 경우도 존재한다.

따라서 페이지가 제대로 표시되지 않읗 수 있다.

 

cefSharp 라이브러리를 활용하면 문제를 해결할 수 있지만 .NET Framwork에서 지원하기 때문에 .NET Core에서는 사용할 수 없다.

.NET Core를 사용한다면 WebView2를 활용하여 이러한 문제를 해결할 수 있다.

 

라이브러리 설치

도구 - Nuget 패키지 관리자 - 솔루션용 Nuget 패키지 관리

Microsoft.Web.WebView2 설치

 

xaml 작업

Window 컨트롤에 아래 속성 추가

xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"

 

WebView2 컨트롤 추가하기

<wv2:WebView2 Source="https://www.google.com" />

 

전체 xaml 소스

<Window x:Class="WpfApp2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp2"
        xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <wv2:WebView2 x:Name="wv" Source="https://www.google.com" />
    </Grid>
</Window>

 

 

위 작업을 모두 마치고 프로그램을 실행하면 구글 페이지가 표시된다.