1

WPF アプリに WebBrowser コントロールを含む WindowsFormsHost があります。私の問題は、初めて Web サイトをロードしようとすると、非常に遅くなることです。WPF WebBrowser も使用しようとしましたが、同じ問題があります。この問題は、WebBrowser が 1 つだけの小さなサンプル アプリと大規模なサンプル アプリでも同じであるため、私の機能はどれも読み込み時間に影響を与えていません。私が普段使っているGoogle Chromeでは、この問題はありません。設定を検討する必要がある WebBrowser のプロパティはありますか? これは、WPF アプリで WebBrowser を使用することに関連していますか? 任意の提案をいただければ幸いです。

ありがとう。

簡単なサンプルアプリ:

<Window x:Class="WebBrowserIntoWPFConceptTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="468" Width="840" xmlns:dxr="http://schemas.devexpress.com/winfx/2008/xaml/ribbon" xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars">
<Grid x:Name="grid">
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="80*"/>
        <RowDefinition Height="20*"/>
    </Grid.RowDefinitions>

    <!--<WebBrowser Grid.Row="0"
                Grid.Column="0"
                Grid.ColumnSpan="2"
                x:Name="wb"/>-->
    <Button Grid.Row="1" 
            Grid.Column="0"
            Width="50" 
            Height="50"
            VerticalAlignment="Bottom"
            Click="Button_Click"/>
    <Button Grid.Row="1"
            Grid.Column="1"
            Width="50" 
            Height="50" Click="Button_Click_1" />
</Grid>

namespace WebBrowserIntoWPFConceptTest

{ パブリック部分クラス MainWindow : ウィンドウ { プライベート WindowsFormsHost winFormHost; System.Windows.Forms.WebBrowser wf_wb;

    public MainWindow()
    {
        InitializeComponent();
        wf_wb = new System.Windows.Forms.WebBrowser();
        winFormHost = new WindowsFormsHost();
        winFormHost.Child = wf_wb;
        Grid.SetColumn(winFormHost, 0);
        Grid.SetRow(winFormHost, 0);
        Grid.SetColumnSpan(winFormHost, 2);
        grid.Children.Add(winFormHost);
    }



    private void Button_Click(object sender, RoutedEventArgs e)
    {
        Uri uri = new Uri("http://www.google.com");
        wf_wb.Navigate(uri);
    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        HtmlDocument htmlDoc = (HtmlDocument)wf_wb.Document;
    }
}

}

4

1 に答える 1

0

WebBrowser は IE のラッパーです。したがって、IE を試してみて遅い場合は、WebBrowser も遅くなります。何らかのウイルスが原因で速度が低下している可能性があります。そのため、ウイルススキャナーでコンピューターをスキャンしてください。

私はそのような問題について聞いたことがありません。ただし、ページが読み込まれず、ウイルススキャンを実行すると最終的に修正されるというブラウザの問題がありました(IEおよびmozillaで)。

それでも問題が解決しない場合は、CefSharp プロジェクトhttps://github.com/chillitom/CefSharpを確認してください。「WPF」っぽいので、それを使用するように伝えます。WebBrowser ですべてを行うことができます。

于 2012-12-30T22:31:51.287 に答える