2014-01-23 60 views
0

我有一個問題,我想在webview中使用進度環,但它不會做我想做的事情。即使頁面已加載,進度環也會保留。我也希望加載後出現按鈕。WebView進度環Windows 8.1應用

這裏是我的代碼:

xaml.cs:

using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 
using System.Runtime.InteropServices.WindowsRuntime; 
using Windows.Foundation; 
using Windows.Foundation.Collections; 
using Windows.UI.Xaml; 
using Windows.UI.Xaml.Controls; 
using Windows.UI.Xaml.Controls.Primitives; 
using Windows.UI.Xaml.Data; 
using Windows.UI.Xaml.Input; 
using Windows.UI.Xaml.Media; 
using Windows.UI.Xaml.Navigation; 

// Die Elementvorlage "Leere Seite" ist unter http://go.microsoft.com/fwlink /?LinkId=234238 dokumentiert. 

namespace Euregio_Systems 
    { 
    /// <summary> 
    /// Eine leere Seite, die eigenständig verwendet werden kann oder auf die  innerhalb eines Rahmens navigiert werden kann. 
    /// </summary> 
public sealed partial class MainPage : Page 
{ 
    public MainPage() 
    { 
     this.InitializeComponent(); 
     this.webBrowser.Navigate(new Uri("http://www.euregio-systems.com", UriKind.Absolute)); 
    } 

    private void Button_Click_1(object sender, RoutedEventArgs e) 
    { 
     this.webBrowser.InvokeScript("eval", new[] { "history.go(-1)" }); 
    } 


    private void Button_Click_2(object sender, RoutedEventArgs e) 
    { 
     this.webBrowser.Navigate(new Uri("http://www.euregio-systems.com", UriKind.Absolute)); 
    } 

    private void Button_Click_3(object sender, RoutedEventArgs e) 
    { 
     this.webBrowser.InvokeScript("eval", new[] { "histroy.go(+1)" }); 
    } 
    private void webBrowser_NavigationCompleted(object sender, NavigatingCancelEventArgs e) 
    { 
     pr1.IsActive = false; 
     pr1.Visibility = Windows.UI.Xaml.Visibility.Collapsed; 
     webBrowser.Visibility = Windows.UI.Xaml.Visibility.Visible; 
     fwd.Visibility = Windows.UI.Xaml.Visibility.Visible; 
     backButton.Visibility = Windows.UI.Xaml.Visibility.Visible; 
     homeButton.Visibility = Windows.UI.Xaml.Visibility.Visible; 
    } 
} 
} 

和XAML

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <WebView Name="webBrowser" Visibility="Collapsed"/> 
    <AppBarButton Visibility="Collapsed" Name="backButton" HorizontalAlignment="Left" Margin="-20,-4,0,0" VerticalAlignment="Top" Click="Button_Click_1" Icon="Back"/> 
    <AppBarButton Visibility="Collapsed" Name="homeButton" HorizontalAlignment="Left" Margin="56,-4,0,0" VerticalAlignment="Top" Click="Button_Click_2" Icon="Home"/> 
    <AppBarButton Visibility="Collapsed" Name="fwd" HorizontalAlignment="Left" Margin="132,-4,0,0" VerticalAlignment="Top" Icon="Forward" Click="Button_Click_3"/> 
    <ProgressRing Visibility="Visible" Name="pr1" HorizontalAlignment="Center" VerticalAlignment="Center" IsActive="True" Height="163" Width="170" Margin="0" RequestedTheme="Light"/> 

</Grid> 
</Page> 
+0

你曾經訂閱的隱藏文件代碼中NavigationCompleted事件? – Tseng

+0

我該如何訂閱它? – szoszk

回答

3

你之前添加此行調用瀏覽的網頁瀏覽器在你的代碼:

this.webBrowser.NavigationCompleted+= webBrowser_NavigationCompleted;

你也應該理想地做這個的WebView加載的事件,可以這樣說:

<WebView Name="webBrowser" Visibility="Collapsed" loaded="WebViewControl_Loaded"/> 
0

如果您忘記了訂閱的情況下,你應該打開窗體/頁設計師並檢查「閃電」圖標以顯示您可以訂閱的活動,如在此圖像中

enter image description here

只要看看NavigationCompleted事件,並把你的回調方法名(webBrowser_NavigationCompleted)。

雖然使用的事件是有點氣餒的這些日子。 MVVM是開發Windows Store應用程序(或任何現代WPF應用程序)以充分利用WPF的綁定功能的首選方法。

更新: 或者,如果你喜歡它,你也可以訂閱代碼(只要確保你做的元件都被初始化後):

this.webBrowser.NavigationCompleted += webBrowser_NavigationCompleted; 
+0

我沒有任何「閃電」圖標:O – szoszk

+0

您必須切換到** Designer **。您設計頁面/對話框的佈局。顯示您的UI控件屬性。它是同一個窗口,您可以在屬性和事件之間切換 – Tseng

+0

@Tseng OP要求Windows 8應用程序,您的解決方案適用於Windows窗體應用程序。 – Xyroid

相關問題