Home > C# > 目的別資料 > WebBrowser > WebBrowserクラス

System.Windows.Controls名前空間のWebBrowserクラスを使ってWebサイトを表示する

新規作成日 2015-09-25
最終更新日

概要

WebBrowserクラス(外部サイト) で紹介されているサンプルコードを参考に、実際に簡単なアプリケーションを作成しました。

新規に、Webページを表示するプログラムを作成する場合は、WebBrowserクラスではなく、WebViewコントロール (Windows Community Toolkit v3.0に含まれている)を使用することをお勧めします。

プログラム

xaml


<Window x:Class="WebBrowser001.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        Title="MainWindow" Height="350" Width="525">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="19"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <DockPanel Grid.Row="0">
            <Button DockPanel.Dock="Right" Click="goNavigateButton_Click" Width="40">Go</Button>
            <TextBox x:Name="addressTextBox"/>
        </DockPanel>
        <Grid Grid.Row="1">
            <WebBrowser x:Name="myWebBrowser" />
        </Grid>
    </Grid>

</Window>

xaml.cs


using System;
using System.Windows;

namespace WebBrowser001
{
    /// <summary>
    /// MainWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void goNavigateButton_Click(object sender, RoutedEventArgs e)
        {
            // Get URI to navigate to
            // 操作するために、URIを取得します

            Uri uri = new Uri(this.addressTextBox.Text, UriKind.RelativeOrAbsolute);

            // Only absolute URIs can be navigated to
            // 絶対URIだけで、操作することができます
            if (!uri.IsAbsoluteUri)
            {
                MessageBox.Show("The Address URI must be absolute eg 'http://www.microsoft.com'");
                return;
            }

            // Navigate to the desired URL by calling the .Navigate method
            // .Navigateメソッドを呼ぶことで、望むURLに移動します
            this.myWebBrowser.Navigate(uri);
        }
    }
}

実行し、Webサイトを表示してみる

実行します

プログラムを実行すると、ウィンドウが表示されます。

yahooのトップページを表示する

yahoo トップページのURL(http://www.yahoo.co.jp/)を入力して、Goボタンを押すと、yahoo トップページが表示されますが、ブラウザのバージョンに関する注意書きが表示されます。

このことから、古いアプリケーションのブラウザからアクセスされるWebサイトは、Internet Explorer 7に対応させておく必要を考えておく必要があることがわかります。

WebBrowserクラスの内部エンジンのバージョンを変更する

WebBrowserクラスの内部エンジンには、Internet Explorer が使われており、デフォルト設定では、Internet Explorer 7と同等の状態です。また、レジストリを操作することで、Internet Explorer 11までバージョンを上げることができます。

そこで、レジストリを操作して、内部エンジンのバージョンを変更します。

変更方法は、以下のサイトの内容を参考にしました。

Windowの検索で、「resedit」を検索し、レジストリエディタを起動します。

右クリックして、「新規」→「DWORD(32ビット)値(D)」を選択します。

「コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION" 」で右クリックして、「新規」→「DWORD(32ビット)値(D)」を選択します。

右クリックして、修正を選択します。

名前を「WebBrowser001.exe」に変更し、右クリックして、修正を選択します。

表示されるウィンドウで値を入力します。

表示されるウィンドウで値を入力します。

再起動します。

yahoo トップページの表示は、変わりませんでした。

そこで、以下のサイトで確認しました。

ブラウザ環境チェックで確認

その結果、Internet Explorer 11と認識されています。ちなみに、Windows 10で使用しています。

このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」