0

在 Pivot 控件中,在 WindowsPhone 7.1 中一次加载所有 Pivot 项内容我正在开发跨平台应用程序。

问题: 在我的应用程序中,每个 Pivot 项都具有 WebBrowser 控件。一次加载所有枢轴项的内容时java script calls are conflicted

要求: 如果 Pivot Control 有 4 个 Pivot 项,如 item1、item2、item3 和 item4,则load item2 after the content of item1 load finished.

编辑 1:我尝试了以下代码http://www.c-sharpcorner.com/UploadFile/1d42da/synchronization-events-and-wait-handles-in-C-Sharp/

ManualResetEvent mre = new ManualResetEvent(false);
foreach (PivotDetails pivotdetails in pivtdetailslist)
{                   
     PivotItem pivotitem = new PivotItem();
     pivotitem.Header = pivotdetails.header;
     WebBrowserControl browsercontrol = new WebBrowserControl(this);
     browsercontrol.Navigate(pivotdetails.url);
     pivotitem.Content = browsercontrol;
     mre.Reset();
     myPivot.Items.Add(pivotitem);
     mre.WaitOne();
}

private void webBrowser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
  mre.Set();
}

EDIT1 问题:仅显示等待屏幕无法看到设计页面。

4

1 回答 1

0

我已将以下代码用于“等待完成事件”

foreach (PivotDetails pivotdetails in pivtdetailslist)
{                   
     PivotItem pivotitem = new PivotItem();
     pivotitem.Header = pivotdetails.header;
     WebBrowserControl browsercontrol = new WebBrowserControl(this);    
     pivotitem.Content = browsercontrol;
     mre.Reset();
     myPivot.Items.Add(pivotitem);
     mre.WaitOne();
}

private void webBrowser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
  myPivot.isHitTestVisible = true;
}

private void myPivot_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
            Pivot pivot = sender as Pivot;
            PivotItem  currentPivot= pivot.SelectedItem as PivotItem;
            if (currentPivot.Content is WebBrowserControl)
            {
               WebBrowserControl bc = currentPivot.Content as WebBrowserControl;
                if (bc.getWebView().Source == null)
                {                    
                    bc.Navigate(pivtdetailslist[pivot.SelectedIndex].url);
                    bc.getWebView().LoadCompleted += new System.Windows.Navigation.LoadCompletedEventHandler(webBrowser_LoadCompleted);
                    myPivot.IsHitTestVisible = false;
                }
            }
}
于 2013-05-01T09:35:49.913 回答