0

WebBrowser コントロールがあり、このコントロールに URL を表示したいと考えています。Web ブラウザーがページをロードするまで、プログレスバーまたはアニメーションを表示する必要があります。

私を助けてください、これが私が持っているものです:

XAML:

<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
    <ProgressBar x:Name="progressbar" IsIndeterminate="True"/>
    <phone:WebBrowser x:Name="webbrw" IsScriptEnabled="True"/>
</Grid>

強いテキスト

public MainPage()
{
    InitializeComponent();

    // Sample code to localize the ApplicationBar
    //BuildLocalizedApplicationBar();
    Loaded += MainPage_Loaded;
}

void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    webbrw.LoadCompleted += webbrw_LoadCompleted;
    webbrw.Source = new Uri("http://www.youtube.com/user/tseries");
}

void webbrw_LoadCompleted(object sender, NavigationEventArgs e)
{
    progressbar.IsIndeterminate = false;
}
4

5 に答える 5

2

これは、LoadCompletedプロパティを使用して実現できます。これで問題が解決することを願っています。

XAML は次のようになります。

<ProgressBar x:Name="progressbar" IsIndeterminate="True"/>
<phone:WebBrowser x:Name="webbrw" IsScriptEnabled="True" LoadCompleted="yesLoaded"/>

このためのC#。

    private void yesLoaded(object sender, NavigationEventArgs e)
    {
        this.progressbar.Visibility = Visibility.Collapsed; 
        this.progressbar.IsIndeterminate = False;
    }
于 2013-10-18T12:26:34.077 に答える
1

ページの読み込み中にバーを表示し、後で非表示にするだけの場合は、間違ったプロパティを使用しています。このIsIndeterminateプロパティは、一般的なプロセス (true) または値に基づくプロセス (false) を報告します。プログレスバーを非表示にするには、次を使用する必要があります。

progressbar.Visibility = Visibility.Collapsed; 
于 2013-10-18T12:11:42.877 に答える
0

考えられるすべてのケースを処理するには、これら 2 つの WebBrowser イベントLoadCompletedNavigationFailedに登録する必要がありました。

そしてもちろん、各コールバック/ハンドラーの進行を次のように一時停止します。

 progressbar.IsIndeterminate = false;
于 2013-10-18T12:18:54.097 に答える
0

以下に示すように、OnNavigatedTo メソッドを使用してプログレスバーを初期化しました。

protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            progressbar.IsIndeterminate = true;
            //u can add other codes you need
        }

次に、以下に示すように LoadCompleted メソッドを使用して、ブラウザーが完全に読み込まれているかどうかを確認します。

 private void Browser_LoadCompleted(object sender, NavigationEventArgs e)
        {
            progressbar.IsIndeterminate = false;
        }

プログレスバーは、xaml の ProgressBar に付けた名前であることに注意してください。

于 2015-08-04T08:09:43.537 に答える